📄 tool.cpp
字号:
case WM_INITDIALOG: mx = Mox / TILE_SIZE;
my = Moy / TILE_SIZE;
sprintf (temp, "%d", ReturnEventNo( mx, my ) );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT1 ), temp);
return TRUE;
case WM_PAINT:
break;
case WM_COMMAND:
switch( LOWORD( wParam ))
{
case IDOK : Edit_GetText( GetDlgItem(hDlg, IDC_EDIT1), temp, 9);
ChangeEventNo( mx, my, atoi (temp) );
;
return (TRUE);
case IDCANCEL : EndDialog(hDlg, LOWORD(wParam));
;
return (TRUE);
}
break;
}
return FALSE;
}
void InputEventNo( HWND hwnd, HINSTANCE hInstance)
{
DialogBox( hInstance, MAKEINTRESOURCE( IDD_INPUT_EVENT_NO ), NULL, (DLGPROC)InputEventNoProc );
}
////////////////////////////////////////////////////////////////////////////////
#define MAPOBJECT_PUTOFFXY { sprintf( temp, "%d", mo->offx ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OFFSETX ), temp); sprintf( temp, "%d", mo->offy ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OFFSETY ), temp); }
#define MAPOBJECT_PUTXY { sprintf( temp, "%d", mo->x ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_X ), temp); sprintf( temp, "%d", mo->y ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_Y ), temp); }
int tool_MapObject_IDC_ALL_AFFECT = IDC_ALL_AFFECT;
void ModifyMapObjectSort( LPMAPOBJECT mo, int cmd, int gap)
{
int i;
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
switch( cmd )
{
case IDC_BUTTON_SORTL_U : Mo[i].dy0[ mo->curframe ]-=gap;break;
case IDC_BUTTON_SORTL_D : Mo[i].dy0[ mo->curframe ]+=gap;break;
case IDC_BUTTON_SORTL_L : Mo[i].dx0[ mo->curframe ]-=gap;break;
case IDC_BUTTON_SORTL_R : Mo[i].dx0[ mo->curframe ]+=gap;break;
case IDC_BUTTON_SORTR_U : Mo[i].dy1[ mo->curframe ]-=gap;break;
case IDC_BUTTON_SORTR_D : Mo[i].dy1[ mo->curframe ]+=gap;break;
case IDC_BUTTON_SORTR_L : Mo[i].dx1[ mo->curframe ]-=gap;break;
case IDC_BUTTON_SORTR_R : Mo[i].dx1[ mo->curframe ]+=gap;break;
}
Mo[i].attr2 = mo->attr2;
}
}
}
void ModifyMapObjectDontBox( LPMAPOBJECT mo, int cmd, int gap)
{
int i;
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
// 0109 ItemDontBox
// switch( cmd )
// {
// case IDC_DONTBOX_L1 : Mo[i].dtx0 -=gap;break;
// case IDC_DONTBOX_U1 : Mo[i].dty0 -=gap;break;
// case IDC_DONTBOX_R1 : Mo[i].dtx0 -=gap;break;
// case IDC_DONTBOX_D1 : Mo[i].dty0 -=gap;break;
// case IDC_DONTBOX_L2 : Mo[i].dtx1 -=gap;break;
// case IDC_DONTBOX_U2 : Mo[i].dty1 -=gap;break;
// case IDC_DONTBOX_R2 : Mo[i].dtx1 -=gap;break;
// case IDC_DONTBOX_D2 : Mo[i].dty1 -=gap;break;
// case IDC_DONTBOX_L3 : Mo[i].dtx2 -=gap;break;
// case IDC_DONTBOX_U3 : Mo[i].dty2 -=gap;break;
// case IDC_DONTBOX_R3 : Mo[i].dtx2 -=gap;break;
// case IDC_DONTBOX_D3 : Mo[i].dty2 -=gap;break;
// case IDC_DONTBOX_L4 : Mo[i].dtx3 -=gap;break;
// case IDC_DONTBOX_U4 : Mo[i].dty3 -=gap;break;
// case IDC_DONTBOX_R4 : Mo[i].dtx3 -=gap;break;
// case IDC_DONTBOX_D4 : Mo[i].dty3 -=gap;break;
// }
}
}
}
void ModifyMapObjectSound( LPMAPOBJECT mo )
{
int i;
if( tool_MapObject_IDC_ALL_AFFECT == IDC_ALL_AFFECT )
{
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
Mo[i].soundno = mo->soundno;
Mo[i].soundframe = mo->soundframe;
Mo[i].sounddelay = mo->sounddelay;
}
}
}
}
void ModifyMapObjectOrItem( LPMAPOBJECT mo )
{
int i;
if( tool_MapObject_IDC_ALL_AFFECT == IDC_ALL_AFFECT )
{
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
Mo[i].objectoritem = mo->objectoritem;
}
}
}
}
void MapObjectAniTypeChange( LPMAPOBJECT mo, int anitype )
{
int i;
if( tool_MapObject_IDC_ALL_AFFECT == IDC_ALL_AFFECT )
{
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
Mo[i].animationType = mo->animationType;
}
}
}
}
void MapObjectAttr1Change( LPMAPOBJECT mo, int attr1 )
{
int i;
if( tool_MapObject_IDC_ALL_AFFECT == IDC_ALL_AFFECT )
{
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
Mo[i].attr1 = mo->attr1;
}
}
}
}
void MapObjectAttrChange( LPMAPOBJECT mo, int attr )
{
int i;
if( tool_MapObject_IDC_ALL_AFFECT == IDC_ALL_AFFECT )
{
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
Mo[i].attr = mo->attr;
}
}
}
}
void MapObjectLightChange( LPMAPOBJECT mo )
{
int i;
if( tool_MapObject_IDC_ALL_AFFECT == IDC_ALL_AFFECT )
{
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
Mo[i].light = mo->light ;
Mo[i].lightx = mo->lightx;
Mo[i].lighty = mo->lighty;
}
}
}
}
void XYModify( LPMAPOBJECT mo, int x, int y, int offx, int offy )
{
int i;
if( tool_MapObject_IDC_ALL_AFFECT == IDC_ALL_AFFECT )
{
for( i = 0 ; i < TotalMapObject ; i ++)
{
if( mo->id == Mo[i].id )
{
Mo[i].x += x;
Mo[i].y += y;
Mo[i].offx += offx;
Mo[i].offy += offy;
}
}
}
else
{
mo->x += x;
mo->y += y;
mo->offx += offx;
mo->offy += offy;
}
}
///////////////////////// SoundUp lkh 荐沥 /////////////////////////////
BOOL CALLBACK ViewMapObjectInfoProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
{
LPMAPOBJECT mo;
int t;
RECT rect, grect;
static int curMapObject;
int al;
int iteminbox;
int rate_Play=0;
char temp[FILENAME_MAX];
switch(Message)
{
case WM_INITDIALOG: curMapObject = IDCheckedMapObject;
mo = &Mo[ IDCheckedMapObject];
// IDCheckedMapObject = -1;
sprintf( temp, "%d", mo->id );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_ID ), temp);
sprintf( temp, "%d", mo->x ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_X ), temp);
sprintf( temp, "%d", mo->y ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_Y ), temp);
sprintf( temp, "%d", mo->offx );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OFFSETX ), temp);
sprintf( temp, "%d", mo->offy );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OFFSETY ), temp);
sprintf( temp, "%d", mo->animationType );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_ANITYPE_), temp);
sprintf( temp, "%d / %d", mo->curframe+1, MoImage[ mo->id-1].nFrameCount );
Edit_SetText (GetDlgItem(hDlg, IDC_CURFRAME ), temp);
al = mo->attr1 >> 3 ;
sprintf( temp, "%d", al );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_ALPHA ), temp);
sprintf( temp, "%d", mo->dum );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_ITEM_IN_BOX ), temp);
// ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_COMBO_ALPHA ), al);
// sprintf( temp, "%d", mo->animationOrder );
// Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OUT_ ), temp);
// sprintf( temp, "%d", mo->spriteType );
// Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_SPRITE_ ), temp);
// sprintf( temp, "%d", mo->light );
// Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_LIGHT_ ), temp);
switch( mo->animationType )
{
case 0 : mo->animationType = OBJECTANI_NO;
case OBJECTANI_NO : t = IDC__ANI6; break;
case OBJECTANI_RETURNLOOP : t = IDC__ANI7; break;
case OBJECTANI_LOOP : t = IDC__ANI8; break;
case OBJECTANI_1_RETURNLOOP : t = IDC__ANI9; break;
case OBJECTANI_1_LOOP : t = IDC__ANI10; break;
case OBJECTANI_TOGGLE_ANI : t = IDC__ANI11; break;
}
CheckRadioButton( hDlg, IDC__ANI6, IDC__ANI11, t );
switch( mo->attr )
{
case OBJECTATTR_BACK_ABOVE : t = IDC_RADIO_OUT0; break;
case OBJECTATTR_BACK_BELOW : t = IDC_RADIO_OUT1; break;
case OBJECTATTR_FRONT_ABOVE : t = IDC_RADIO_OUT2; break;
case OBJECTATTR_FRONT_BELOW : t = IDC_RADIO_OUT3; break;
}
CheckRadioButton( hDlg, IDC_RADIO_OUT0, IDC_RADIO_OUT3, t );
/**/
switch( mo->attr1 & 0x0003 )
{
case OBJECTSPRITE_NORMAL : t = IDC_RADIO_SPRITE0; break;
case OBJECTSPRITE_TRANS : t = IDC_RADIO_SPRITE1; break;
case OBJECTSPRITE_ALPHA : t = IDC_RADIO_SPRITE2; break;
}
CheckRadioButton( hDlg, IDC_RADIO_SPRITE0, IDC_RADIO_SPRITE2, t );
// mo->light...
switch( mo->light )
{
case 0 : t = IDC_RADIO_LIGHT_0; break;
case 1 : t = IDC_RADIO_LIGHT_1; break;
case 2 : t = IDC_RADIO_LIGHT_2; break;
case 3 : t = IDC_RADIO_LIGHT_3; break;
case 4 : t = IDC_RADIO_LIGHT_4; break;
case 5 : t = IDC_RADIO_LIGHT_5; break;
case 6 : t = IDC_RADIO_LIGHT_6; break;
case 7 : t = IDC_RADIO_LIGHT_7; break;
case 8 : t = IDC_RADIO_LIGHT_8; break;
case 9 : t = IDC_RADIO_LIGHT_9; break;
case 10: t = IDC_RADIO_LIGHT_10; break;
case 11: t = IDC_RADIO_LIGHT_11; break;
case 12: t = IDC_RADIO_LIGHT_12; break;
case 13: t = IDC_RADIO_LIGHT_13; break;
case 14: t = IDC_RADIO_LIGHT_14; break;
case 15: t = IDC_RADIO_LIGHT_15; break;
case 16: t = IDC_RADIO_LIGHT_16; break;
case 17: t = IDC_RADIO_LIGHT_17; break;
}
CheckRadioButton( hDlg, IDC_RADIO_LIGHT_0, IDC_RADIO_LIGHT_17, t );
switch( mo->attr2 )
{
case 0 : t = IDC_SORT_M; break;
case 1 : t = IDC_SORT_L; break;
case 2 : t = IDC_SORT_R; break;
}
CheckRadioButton( hDlg, IDC_SORT_L, IDC_SORT_R, t );
if( t == IDC_SORT_L || t == IDC_SORT_R )
{
sprintf( temp, "%d", mo->dx0[ mo->curframe ] ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_SORTL_X), temp);
sprintf( temp, "%d", mo->dy0[ mo->curframe ] ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_SORTL_Y), temp);
sprintf( temp, "%d", mo->dx1[ mo->curframe ] ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_SORTR_X), temp);
sprintf( temp, "%d", mo->dy1[ mo->curframe ] ); Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_SORTR_Y), temp);
}
switch( mo->objectoritem )
{
case ITEMTYPE_NORMAL : t = IDC_ITEM_NORMAL4 ; break;
case ITEMTYPE_CHAIR : t = IDC_ITEM_CHAIR4 ; break;
case ITEMTYPE_TABLE : t = IDC_ITEM_TABLE4 ; break;
case ITEMTYPE_DOOR : t = IDC_ITEM_DOOR4 ; break;
case ITEMTYPE_BOX : t = IDC_ITEM_BOX4 ; break;
case ITEMTYPE_SIGNBOARD : t = IDC_ITEM_SIGNBOARD4 ; break;
case ITEMTYPE_DIRECTBOARD : t = IDC_ITEM_DIRECTBOARD4; break;
case ITEMTYPE_WORKTABLE_MINING : t = IDC_ITEM_WORKTABLE_MINING4; break; // 累诀措 侩堡肺(71)
case ITEMTYPE_WORKTABLE_BATTLE : t = IDC_ITEM_WORKTABLE_BATTLE4; break; // 累诀措 硅撇
case ITEMTYPE_WORKTABLE_SUNBAN : t = IDC_ITEM_WORKTABLE_SUNBAN4; break; // 累诀措 急馆
case ITEMTYPE_WORKTABLE_MORU : t = IDC_ITEM_WORKTABLE_MORU4; break; // 累诀措 葛风
case ITEMTYPE_WORKTABLE_HWADUK : t = IDC_ITEM_WORKTABLE_HWADUK4; break; // 累诀措 拳傣
case ITEMTYPE_WORKTABLE_SIHUMKWAN : t = IDC_ITEM_WORKTABLE_SIHUMKWAN4; break; // 累诀措 矫氰包幅
case ITEMTYPE_WORKTABLE_MULAE : t = IDC_ITEM_WORKTABLE_MULAE4; break; // 累诀措 拱饭
case ITEMTYPE_WORKTABLE_BULDAE : t = IDC_ITEM_WORKTABLE_BULDAE4; break; // 累诀措 阂措
case ITEMTYPE_SEAL_NOR : t = IDC_ITEM_SEAL_NOR ; break; // 累诀措 阂措
case ITEMTYPE_SEAL_SPC : t = IDC_ITEM_SEAL_SPC ; break; // 累诀措 阂措
case ITEMTYPE_HP_UP : t = IDC_ITEM_HP_UP ; break; // 累诀措 阂措
case ITEMTYPE_MP_UP : t = IDC_ITEM_MP_UP ; break; // 累诀措 阂措
case ITEMTYPE_SCALE : t = IDC_ITEM_SP_UP ; break; // 累诀措 阂措 // 010614 khs
case ITEMTYPE_NATION_STONE : t = IDC_ITEM_NATION_STONE ; break; // 累诀措 阂措
case ITEMTYPE_GUILD_STONE : t = IDC_ITEM_GUILD_STONE ; break; // 累诀措 阂措
case ITEMTYPE_SENARIO_STONE : t = IDC_ITEM_SENARIO_STONE ; break; // 累诀措 阂措
case ITEMTYPE_COLOSSUS_STONE : t = IDC_ITEM_COLOSSUS_STONE ; break; // 累诀措 阂措
}
CheckRadioButton( hDlg, IDC_ITEM_NORMAL4, IDC_ITEM_COLOSSUS_STONE, t );
CheckRadioButton( hDlg, IDC_ALL_AFFECT, IDC_ALL_AFFECT_NO, tool_MapObject_IDC_ALL_AFFECT );
sprintf( temp, "%d", MoImage[ mo->id-1].nFrameCount );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OBJECT_FRAME ), temp);
// Sound.
sprintf( temp, "%d", mo->soundno ); //10000窜困 捞惑篮 掉饭捞甫 困茄 墨款飘 函荐侩
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OBJECT_SOUND_NO ), temp);
sprintf( temp, "%d", mo->soundframe );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OBJECT_SOUND_FRAME ), temp);
sprintf( temp, "%d", mo->sounddelay );
Edit_SetText (GetDlgItem(hDlg, IDC_EDIT_OBJECT_SOUND_DEALY ), temp);
GetWindowRect( hDlg, &rect );// 拳搁 坷弗率捞 嘿绢唱坷霸 窍妨绊 茄扒单 ... 绢痘霸 秦具 且瘤..
GetWindowRect( g_hwndMain, &grect );// 拳搁 坷弗率捞 嘿绢唱坷霸 窍妨绊 茄扒单 ... 绢痘霸 秦具 且瘤..
MoveWindow( hDlg, grect.right+1, 0, rect.right, rect.bottom, true);
// CheckRadioButton( hDlg, IDC_ALL_AFFECT, IDC_ALL_AFFECT_NO, tool_MapObject_IDC_ALL_AFFECT );
return TRUE;
case WM_PAINT:
break;
case WM_COMMAND:
mo = &Mo[ curMapObject];
switch( LOWORD( wParam ))
{
case ID_SOUND_PLAY :
{
int tempno;
Edit_GetText (GetDlgItem(hDlg, IDC_EDIT_OBJECT_SOUND_NO ), temp, 9);
tempno = atoi( temp );
tempno = tempno%1000;
PlayListAutoSounds( tempno, 0,0,0 ); break;
}
case IDC_ALL_AFFECT : tool_MapObject_IDC_ALL_AFFECT = IDC_ALL_AFFECT; break;
case IDC_ALL_AFFECT_NO : tool_MapObject_IDC_ALL_AFFECT = IDC_ALL_AFFECT_NO; break;
case IDC_BUTTON_OFF_LEFT : XYModify( mo, 0, 0, -1, 0 ); MAPOBJECT_PUTOFFXY; ;GameTestProc( &g_DirectDrawInfo ); break;
case IDC_BUTTON_OFF_RIGHT : XYModify( mo, 0, 0, 1, 0 ); MAPOBJECT_PUTOFFXY; ;GameTestProc( &g_DirectDrawInfo ); break;
case IDC_BUTTON_OFF_DOWN : XYModify( mo, 0, 0, 0, 1 ); MAPOBJECT_PUTOFFXY; ;GameTestProc( &g_DirectDrawInfo ); break;
case IDC_BUTTON_OFF_UP : XYModify( mo, 0, 0, 0, -1 ); MAPOBJECT_PUTOFFXY; ;GameTestProc( &g_DirectDrawInfo ); break;
case IDC_Y_U : { XYModify( mo, 0, -1, 0, 0 ); ;GameTestProc( &g_DirectDrawInfo ); MAPOBJECT_PUTXY } break;
case IDC_Y_D : { XYModify( mo, 0, 1, 0, 0 ); ;GameTestProc( &g_DirectDrawInfo ); MAPOBJECT_PUTXY } break;
case IDC_X_L : { XYModify( mo, -1, 0, 0, 0 ); ;GameTestProc( &g_DirectDrawInfo ); MAPOBJECT_PUTXY } break;
case IDC_X_R : { XYModify( mo, 1, 0, 0, 0 ); ;GameTestProc( &g_DirectDrawInfo ); MAPOBJECT_PUTXY } break;
case IDC_Y_U2: { XYModify( mo, 0,-10, 0, 0 ); ;GameTestProc( &g_D
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -