diff --git a/Source/items.cpp b/Source/items.cpp index a2e528679..469b29f45 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -4618,7 +4618,7 @@ LABEL_71: plr[v33]._pSpell = spl; plr[v33]._pSplType = 4; plr[v33]._pSplFrom = 3; - plr[v33].destAction = 12; + plr[v33].destAction = ACTION_SPELL; plr[v33].destParam2 = v34; return; } @@ -4636,7 +4636,7 @@ LABEL_71: plr[v38]._pSpell = spl; plr[v38]._pSplType = 4; plr[v38]._pSplFrom = 3; - plr[v38].destAction = 12; + plr[v38].destAction = ACTION_SPELL; plr[v38].destParam1 = v37; plr[v38].destParam2 = v39; if ( v36 && spl == SPL_NOVA ) diff --git a/Source/msg.cpp b/Source/msg.cpp index aad5918b0..cd83e840d 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -1764,7 +1764,7 @@ int __fastcall On_WALKXY(struct TCmdLoc *pCmd, int pnum) { ClrPlrPath(pnum); MakePlrPath(v2, (unsigned char)v3->x, (unsigned char)v3->y, 1u); - plr[v4].destAction = -1; + plr[v4].destAction = ACTION_NONE; } } return 3; @@ -1855,7 +1855,7 @@ int __fastcall On_SBSPELL(struct TCmdParam1 *pCmd, int pnum) plr[v2]._pSpell = (unsigned short)pCmd->wParam1; plr[v2]._pSplType = plr[v2]._pSBkSplType; plr[v2]._pSplFrom = 1; - plr[v2].destAction = 12; + plr[v2].destAction = ACTION_SPELL; } else { @@ -1895,7 +1895,7 @@ int __fastcall On_GOTOGETITEM(struct TCmdLocParam1 *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); - plr[v3].destAction = 15; + plr[v3].destAction = ACTION_PICKUPITEM; plr[v3].destParam1 = (unsigned short)v2->wParam1; } } @@ -2127,7 +2127,7 @@ int __fastcall On_GOTOAGETITEM(struct TCmdLocParam1 *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); - plr[v3].destAction = 16; + plr[v3].destAction = ACTION_PICKUPAITEM; plr[v3].destParam1 = (unsigned short)v2->wParam1; } } @@ -2493,7 +2493,7 @@ int __fastcall On_ATTACKXY(struct TCmdLoc *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); - plr[v3].destAction = 9; + plr[v3].destAction = ACTION_ATTACK; plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam2 = (unsigned char)v2->y; } @@ -2514,7 +2514,7 @@ int __fastcall On_SATTACKXY(struct TCmdLoc *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { ClrPlrPath(pnum); - plr[v3].destAction = 9; + plr[v3].destAction = ACTION_ATTACK; plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam2 = (unsigned char)v2->y; } @@ -2535,7 +2535,7 @@ int __fastcall On_RATTACKXY(struct TCmdLoc *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { ClrPlrPath(pnum); - plr[v3].destAction = 10; + plr[v3].destAction = ACTION_RATTACK; plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam2 = (unsigned char)v2->y; } @@ -2559,7 +2559,7 @@ int __fastcall On_SPELLXYD(struct TCmdLocParam3 *pCmd, int pnum) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell ) { ClrPlrPath(pnum); - plr[v3].destAction = 26; + plr[v3].destAction = ACTION_SPELLWALL; plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam2 = (unsigned char)v2->y; plr[v3].destParam3 = (unsigned short)v2->wParam2; @@ -2594,7 +2594,7 @@ int __fastcall On_SPELLXY(struct TCmdLocParam2 *pCmd, int pnum) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell ) { ClrPlrPath(pnum); - plr[v3].destAction = 12; + plr[v3].destAction = ACTION_SPELL; plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam2 = (unsigned char)v2->y; plr[v3].destParam3 = (unsigned short)v2->wParam2; @@ -2627,7 +2627,7 @@ int __fastcall On_TSPELLXY(struct TCmdLocParam2 *pCmd, int pnum) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell ) { ClrPlrPath(pnum); - plr[v3].destAction = 12; + plr[v3].destAction = ACTION_SPELL; plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam2 = (unsigned char)v2->y; plr[v3].destParam3 = (unsigned short)v2->wParam2; @@ -2662,7 +2662,7 @@ int __fastcall On_OPOBJXY(struct TCmdLocParam1 *pCmd, int pnum) MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); else MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 1u); - plr[v3].destAction = 13; + plr[v3].destAction = ACTION_OPERATE; plr[v3].destParam1 = (unsigned short)v2->wParam1; } } @@ -2687,7 +2687,7 @@ int __fastcall On_DISARMXY(struct TCmdLocParam1 *pCmd, int pnum) MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); else MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 1u); - plr[v3].destAction = 14; + plr[v3].destAction = ACTION_DISARM; plr[v3].destParam1 = (unsigned short)v2->wParam1; } } @@ -2704,7 +2704,7 @@ int __fastcall On_OPOBJT(struct TCmdParam1 *pCmd, int pnum) v2 = pnum; if ( currlevel == plr[pnum].plrlevel ) { - plr[v2].destAction = 18; + plr[v2].destAction = ACTION_OPERATETK; plr[v2].destParam1 = (unsigned short)pCmd->wParam1; } } @@ -2735,7 +2735,7 @@ int __fastcall On_ATTACKID(struct TCmdParam1 *pCmd, int pnum) monster[(unsigned short)v3->wParam1]._mfutx, monster[(unsigned short)v3->wParam1]._mfuty, 0); - plr[v4].destAction = 20; + plr[v4].destAction = ACTION_ATTACKMON; plr[v4].destParam1 = (unsigned short)v3->wParam1; } } @@ -2755,7 +2755,7 @@ int __fastcall On_ATTACKPID(struct TCmdParam1 *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { MakePlrPath(pnum, plr[(unsigned short)pCmd->wParam1]._px, plr[(unsigned short)pCmd->wParam1]._py, 0); - plr[v3].destAction = 21; + plr[v3].destAction = ACTION_ATTACKPLR; plr[v3].destParam1 = (unsigned short)v2->wParam1; } } @@ -2775,7 +2775,7 @@ int __fastcall On_RATTACKID(struct TCmdParam1 *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { ClrPlrPath(pnum); - plr[v3].destAction = 22; + plr[v3].destAction = ACTION_RATTACKMON; plr[v3].destParam1 = (unsigned short)v2->wParam1; } } @@ -2795,7 +2795,7 @@ int __fastcall On_RATTACKPID(struct TCmdParam1 *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { ClrPlrPath(pnum); - plr[v3].destAction = 23; + plr[v3].destAction = ACTION_RATTACKPLR; plr[v3].destParam1 = (unsigned short)v2->wParam1; } } @@ -2818,7 +2818,7 @@ int __fastcall On_SPELLID(struct TCmdLocParam2 *pCmd, int pnum) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell ) { ClrPlrPath(pnum); - plr[v3].destAction = 24; + plr[v3].destAction = ACTION_SPELLMON; plr[v3].destParam1 = *(unsigned short *)&v2->x; plr[v3].destParam2 = (unsigned short)v2->wParam2; v4 = (unsigned short)v2->wParam1; @@ -2851,7 +2851,7 @@ int __fastcall On_SPELLPID(struct TCmdLocParam2 *pCmd, int pnum) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell ) { ClrPlrPath(pnum); - plr[v3].destAction = 25; + plr[v3].destAction = ACTION_SPELLPLR; plr[v3].destParam1 = *(unsigned short *)&v2->x; plr[v3].destParam2 = (unsigned short)v2->wParam2; v4 = (unsigned short)v2->wParam1; @@ -2883,7 +2883,7 @@ int __fastcall On_TSPELLID(struct TCmdLocParam2 *pCmd, int pnum) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell ) { ClrPlrPath(pnum); - plr[v3].destAction = 24; + plr[v3].destAction = ACTION_SPELLMON; plr[v3].destParam1 = *(unsigned short *)&v2->x; plr[v3].destParam2 = (unsigned short)v2->wParam2; plr[v3]._pSpell = (unsigned short)v2->wParam1; @@ -2914,7 +2914,7 @@ int __fastcall On_TSPELLPID(struct TCmdLocParam2 *pCmd, int pnum) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell ) { ClrPlrPath(pnum); - plr[v3].destAction = 25; + plr[v3].destAction = ACTION_SPELLPLR; plr[v3].destParam1 = *(unsigned short *)&v2->x; plr[v3].destParam2 = (unsigned short)v2->wParam2; plr[v3]._pSpell = (unsigned short)v2->wParam1; @@ -2985,7 +2985,7 @@ int __fastcall On_TALKXY(struct TCmdLocParam1 *pCmd, int pnum) if ( currlevel == plr[pnum].plrlevel ) { MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); - plr[v3].destAction = 17; + plr[v3].destAction = ACTION_TALK; plr[v3].destParam1 = (unsigned short)v2->wParam1; } } @@ -3808,7 +3808,7 @@ int __fastcall On_NOVA(struct TCmdLoc *pCmd, int pnum) plr[v3]._pSpell = SPL_NOVA; plr[v3]._pSplType = 4; plr[v3]._pSplFrom = 3; - plr[v3].destAction = 12; + plr[v3].destAction = ACTION_SPELL; plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam2 = (unsigned char)v2->y; } diff --git a/Source/multi.cpp b/Source/multi.cpp index a4f503816..e71f629c4 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -981,7 +981,7 @@ void __cdecl SetupLocalCoords() plr[myplr]._pLvlChanging = 1; plr[myplr].pLvlLoad = 0; plr[myplr]._pmode = PM_NEWLVL; - plr[myplr].destAction = -1; + plr[myplr].destAction = ACTION_NONE; } // 52572C: using guessed type int leveldebug; // 5BB1ED: using guessed type char leveltype; diff --git a/Source/pack.cpp b/Source/pack.cpp index dbc8f5fa4..e8927d829 100644 --- a/Source/pack.cpp +++ b/Source/pack.cpp @@ -169,7 +169,7 @@ void __fastcall UnPackPlayer(PkPlayerStruct *pPack, int pnum, bool killok) pPlayer->_ptargy = (unsigned char)pPack->targy; pPlayer->plrlevel = (unsigned char)pPack->plrlevel; ClrPlrPath(pnum); - pPlayer->destAction = -1; + pPlayer->destAction = ACTION_NONE; strcpy(pPlayer->_pName, pPack->pName); _LOBYTE(pPlayer->_pClass) = pPack->pClass; InitPlayer(pnum, TRUE); diff --git a/Source/player.cpp b/Source/player.cpp index aeaf411c6..3ef15a911 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -875,7 +875,7 @@ void __fastcall InitPlayer(int pnum, BOOL FirstTime) plr[pnum]._px = plr[pnum].WorldX; plr[pnum]._py = plr[pnum].WorldY; plr[pnum].walkpath[0] = -1; - plr[pnum].destAction = -1; + plr[pnum].destAction = ACTION_NONE; if ( pnum == myplr ) { plr[pnum]._plid = AddLight(plr[pnum].WorldX, plr[pnum].WorldY, plr[pnum]._pLightRad); @@ -2049,7 +2049,7 @@ void __fastcall InitLevelChange(int pnum) } ClrPlrPath(pnum); - plr[pnum].destAction = -1; + plr[pnum].destAction = ACTION_NONE; plr[pnum]._pLvlChanging = 1; if ( pnum == myplr ) { @@ -3152,35 +3152,35 @@ void __fastcall CheckNewPath(int pnum) if ( (unsigned int)pnum >= MAX_PLRS ) TermMsg("CheckNewPath: illegal player %d", pnum); v2 = v1; - if ( plr[v1].destAction == 20 ) + if ( plr[v1].destAction == ACTION_ATTACKMON ) MakePlrPath(v1, monster[plr[v2].destParam1]._mfutx, monster[plr[v2].destParam1]._mfuty, 0); - if ( plr[v2].destAction == 21 ) + if ( plr[v2].destAction == ACTION_ATTACKPLR ) MakePlrPath(v1, plr[plr[v2].destParam1]._px, plr[plr[v2].destParam1]._py, 0); if ( plr[v2].walkpath[0] == -1 ) { v18 = plr[v2].destAction; - if ( v18 == -1 ) + if ( v18 == ACTION_NONE ) return; v19 = plr[v2]._pmode; if ( v19 == PM_STAND ) { switch ( v18 ) { - case 9: + case ACTION_ATTACK: v20 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, plr[v2].destParam1, plr[v2].destParam2); goto LABEL_52; - case 10: + case ACTION_RATTACK: v30 = plr[v2].WorldY; v31 = plr[v2].WorldX; v32 = &plr[v2].destParam2; v33 = &plr[v2].destParam1; goto LABEL_59; - case 12: + case ACTION_SPELL: v39 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, plr[v2].destParam1, plr[v2].destParam2); StartSpell(p, v39, plr[v2].destParam1, plr[v2].destParam2); v40 = plr[v2].destParam3; goto LABEL_66; - case 13: + case ACTION_OPERATE: v46 = plr[v2].destParam1; arglista = v46; v47 = v46; @@ -3197,7 +3197,7 @@ void __fastcall CheckNewPath(int pnum) if ( object[v47]._oBreak != 1 ) goto LABEL_73; goto LABEL_80; - case 14: + case ACTION_DISARM: v50 = plr[v2].destParam1; arglista = v50; v47 = v50; @@ -3227,7 +3227,7 @@ LABEL_73: OperateObject(p, arglista, 0); } break; - case 15: + case ACTION_PICKUPITEM: if ( v1 == myplr ) { v53 = plr[v2].destParam1; @@ -3241,7 +3241,7 @@ LABEL_73: } } break; - case 16: + case ACTION_PICKUPAITEM: if ( v1 == myplr ) { v57 = plr[v2].destParam1; @@ -3252,15 +3252,15 @@ LABEL_73: NetSendCmdGItem(1u, CMD_REQUESTAGITEM, myplr, myplr, v57); } break; - case 17: + case ACTION_TALK: if ( v1 == myplr ) TalkToTowner(v1, plr[v2].destParam1); break; - case 18: + case ACTION_OPERATETK: if ( object[plr[v2].destParam1]._oBreak != 1 ) OperateObject(v1, plr[v2].destParam1, 1u); break; - case 20: + case ACTION_ATTACKMON: v21 = plr[v2].destParam1; v22 = plr[v2].destParam1; v23 = abs(plr[v2].WorldX - monster[v22]._mfutx); @@ -3272,7 +3272,7 @@ LABEL_73: if ( v25 && v25 != QUEST_VILE14 ) goto LABEL_56; goto LABEL_81; - case 21: + case ACTION_ATTACKPLR: v26 = plr[v2].destParam1; v27 = abs(plr[v2].WorldX - plr[v26]._px); v28 = abs(plr[v2].WorldY - plr[v26]._py); @@ -3282,7 +3282,7 @@ LABEL_73: LABEL_52: v29 = v1; goto LABEL_82; - case 22: + case ACTION_RATTACKMON: v21 = plr[v2].destParam1; v34 = plr[v2].destParam1; v35 = GetDirection(plr[v2]._px, plr[v2]._py, monster[v34]._mfutx, monster[v34]._mfuty); @@ -3293,7 +3293,7 @@ LABEL_56: else StartRangeAttack(p, v35, monster[v34]._mfutx, monster[v34]._mfuty); break; - case 23: + case ACTION_RATTACKPLR: v30 = plr[v2]._py; v37 = plr[v2].destParam1; v31 = plr[v2]._px; @@ -3303,12 +3303,12 @@ LABEL_59: v38 = GetDirection(v31, v30, *v33, *v32); StartRangeAttack(p, v38, *v33, *v32); break; - case 24: + case ACTION_SPELLMON: v41 = plr[v2].destParam1; v42 = &monster[v41]._mfuty; v43 = &monster[v41]._mfutx; goto LABEL_65; - case 25: + case ACTION_SPELLPLR: v44 = plr[v2].destParam1; v42 = &plr[v44]._py; v43 = &plr[v44]._px; @@ -3317,7 +3317,7 @@ LABEL_65: StartSpell(p, v45, *v43, *v42); v40 = plr[v2].destParam2; goto LABEL_66; - case 26: + case ACTION_SPELLWALL: StartSpell(v1, plr[v2].destParam3, plr[v2].destParam1, plr[v2].destParam2); plr[v2]._pVar3 = plr[v2].destParam3; v40 = plr[v2].destParam4; @@ -3334,16 +3334,16 @@ LABEL_66: { switch ( v18 ) { - case 9: + case ACTION_ATTACK: v61 = GetDirection(plr[v2]._px, plr[v2]._py, plr[v2].destParam1, plr[v2].destParam2); LABEL_105: v62 = v1; LABEL_106: StartAttack(v62, v61); LABEL_107: - plr[v2].destAction = -1; + plr[v2].destAction = ACTION_NONE; break; - case 20: + case ACTION_ATTACKMON: v63 = plr[v2].destParam1; v64 = abs(plr[v2].WorldX - monster[v63]._mfutx); v65 = abs(plr[v2].WorldY - monster[v63]._mfuty); @@ -3351,7 +3351,7 @@ LABEL_107: goto LABEL_107; v61 = GetDirection(plr[v2]._px, plr[v2]._py, monster[v63]._mfutx, monster[v63]._mfuty); goto LABEL_105; - case 21: + case ACTION_ATTACKPLR: v66 = plr[v2].destParam1; v67 = abs(plr[v2].WorldX - plr[v66]._px); v68 = abs(plr[v2].WorldY - plr[v66]._py); @@ -3360,7 +3360,7 @@ LABEL_107: v61 = GetDirection(plr[v2]._px, plr[v2]._py, plr[v66]._px, plr[v66]._py); v62 = p; goto LABEL_106; - case 13: + case ACTION_OPERATE: v69 = plr[v2].destParam1; arglistb = v69; v70 = v69; @@ -3392,20 +3392,20 @@ LABEL_107: v74 = plr[v2].destAction; switch ( v74 ) { - case 10: + case ACTION_RATTACK: v75 = &plr[v2].destParam2; v76 = &plr[v2].destParam1; LABEL_133: v79 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, *v76, *v75); StartRangeAttack(p, v79, *v76, *v75); - plr[v2].destAction = -1; + plr[v2].destAction = ACTION_NONE; break; - case 22: + case ACTION_RATTACKMON: v77 = plr[v2].destParam1; v75 = &monster[v77]._mfuty; v76 = &monster[v77]._mfutx; goto LABEL_133; - case 23: + case ACTION_RATTACKPLR: v78 = plr[v2].destParam1; v75 = &plr[v78]._py; v76 = &plr[v78]._px; @@ -3417,16 +3417,16 @@ LABEL_133: v80 = plr[v2].destAction; switch ( v80 ) { - case 12: + case ACTION_SPELL: v81 = &plr[v2].destParam2; v82 = &plr[v2].destParam1; break; - case 24: + case ACTION_SPELLMON: v83 = plr[v2].destParam1; v81 = &monster[v83]._mfuty; v82 = &monster[v83]._mfutx; break; - case 25: + case ACTION_SPELLPLR: v84 = plr[v2].destParam1; v81 = &plr[v84]._py; v82 = &plr[v84]._px; @@ -3445,10 +3445,10 @@ LABEL_133: if ( v1 == myplr ) { v3 = plr[v2].destAction; - if ( v3 == 20 || v3 == 21 ) + if ( v3 == ACTION_ATTACKMON || v3 == ACTION_ATTACKPLR ) { v4 = plr[v2].destParam1; - v5 = v3 == 20; + v5 = v3 == ACTION_ATTACKMON; v6 = plr[v2]._px; arglist = plr[v2].destParam1; if ( v5 ) @@ -3479,7 +3479,7 @@ LABEL_133: TalktoMonster(arglist); else StartAttack(p, v11); - plr[v2].destAction = -1; + plr[v2].destAction = ACTION_NONE; } } } @@ -3553,7 +3553,7 @@ LABEL_32: { StartStand(p, plr[v2]._pdir); LABEL_143: - plr[v2].destAction = -1; + plr[v2].destAction = ACTION_NONE; return; } } diff --git a/Source/spells.cpp b/Source/spells.cpp index e5a1b2f94..1f786f12c 100644 --- a/Source/spells.cpp +++ b/Source/spells.cpp @@ -235,7 +235,7 @@ void __fastcall DoResurrect(int pnum, int rid) } ClrPlrPath(rid); - plr[rid].destAction = -1; + plr[rid].destAction = ACTION_NONE; plr[rid]._pInvincible = 0; PlacePlayer(rid); diff --git a/enums.h b/enums.h index 60a0febea..723871c81 100644 --- a/enums.h +++ b/enums.h @@ -2700,3 +2700,23 @@ enum shrine_type { SHRINE_TAINTED = 25, NUM_SHRINETYPE }; + +enum action_id { + ACTION_NONE = -1, + ACTION_ATTACK = 9, + ACTION_RATTACK = 10, + ACTION_SPELL = 12, + ACTION_OPERATE = 13, + ACTION_DISARM = 14, + ACTION_PICKUPITEM = 15, // put item in hand (inventory screen open) + ACTION_PICKUPAITEM = 16, // put item in inventory + ACTION_TALK = 17, + ACTION_OPERATETK = 18, // operate via telekinesis + ACTION_ATTACKMON = 20, + ACTION_ATTACKPLR = 21, + ACTION_RATTACKMON = 22, + ACTION_RATTACKPLR = 23, + ACTION_SPELLMON = 24, + ACTION_SPELLPLR = 25, + ACTION_SPELLWALL = 26, +};