Browse Source

add enums for known actions (to be performed in response to commands)

pull/4/head
Andrew Dunstan 8 years ago
parent
commit
71cae5f8c2
  1. 4
      Source/items.cpp
  2. 46
      Source/msg.cpp
  3. 2
      Source/multi.cpp
  4. 2
      Source/pack.cpp
  5. 74
      Source/player.cpp
  6. 2
      Source/spells.cpp
  7. 20
      enums.h

4
Source/items.cpp

@ -4618,7 +4618,7 @@ LABEL_71:
plr[v33]._pSpell = spl; plr[v33]._pSpell = spl;
plr[v33]._pSplType = 4; plr[v33]._pSplType = 4;
plr[v33]._pSplFrom = 3; plr[v33]._pSplFrom = 3;
plr[v33].destAction = 12; plr[v33].destAction = ACTION_SPELL;
plr[v33].destParam2 = v34; plr[v33].destParam2 = v34;
return; return;
} }
@ -4636,7 +4636,7 @@ LABEL_71:
plr[v38]._pSpell = spl; plr[v38]._pSpell = spl;
plr[v38]._pSplType = 4; plr[v38]._pSplType = 4;
plr[v38]._pSplFrom = 3; plr[v38]._pSplFrom = 3;
plr[v38].destAction = 12; plr[v38].destAction = ACTION_SPELL;
plr[v38].destParam1 = v37; plr[v38].destParam1 = v37;
plr[v38].destParam2 = v39; plr[v38].destParam2 = v39;
if ( v36 && spl == SPL_NOVA ) if ( v36 && spl == SPL_NOVA )

46
Source/msg.cpp

@ -1764,7 +1764,7 @@ int __fastcall On_WALKXY(struct TCmdLoc *pCmd, int pnum)
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
MakePlrPath(v2, (unsigned char)v3->x, (unsigned char)v3->y, 1u); MakePlrPath(v2, (unsigned char)v3->x, (unsigned char)v3->y, 1u);
plr[v4].destAction = -1; plr[v4].destAction = ACTION_NONE;
} }
} }
return 3; return 3;
@ -1855,7 +1855,7 @@ int __fastcall On_SBSPELL(struct TCmdParam1 *pCmd, int pnum)
plr[v2]._pSpell = (unsigned short)pCmd->wParam1; plr[v2]._pSpell = (unsigned short)pCmd->wParam1;
plr[v2]._pSplType = plr[v2]._pSBkSplType; plr[v2]._pSplType = plr[v2]._pSBkSplType;
plr[v2]._pSplFrom = 1; plr[v2]._pSplFrom = 1;
plr[v2].destAction = 12; plr[v2].destAction = ACTION_SPELL;
} }
else else
{ {
@ -1895,7 +1895,7 @@ int __fastcall On_GOTOGETITEM(struct TCmdLocParam1 *pCmd, int pnum)
if ( currlevel == plr[pnum].plrlevel ) if ( currlevel == plr[pnum].plrlevel )
{ {
MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); 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; 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 ) if ( currlevel == plr[pnum].plrlevel )
{ {
MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); 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; 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 ) if ( currlevel == plr[pnum].plrlevel )
{ {
MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); 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].destParam1 = (unsigned char)v2->x;
plr[v3].destParam2 = (unsigned char)v2->y; 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 ) if ( currlevel == plr[pnum].plrlevel )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 9; plr[v3].destAction = ACTION_ATTACK;
plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam1 = (unsigned char)v2->x;
plr[v3].destParam2 = (unsigned char)v2->y; 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 ) if ( currlevel == plr[pnum].plrlevel )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 10; plr[v3].destAction = ACTION_RATTACK;
plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam1 = (unsigned char)v2->x;
plr[v3].destParam2 = (unsigned char)v2->y; 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 ) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 26; plr[v3].destAction = ACTION_SPELLWALL;
plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam1 = (unsigned char)v2->x;
plr[v3].destParam2 = (unsigned char)v2->y; plr[v3].destParam2 = (unsigned char)v2->y;
plr[v3].destParam3 = (unsigned short)v2->wParam2; 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 ) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 12; plr[v3].destAction = ACTION_SPELL;
plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam1 = (unsigned char)v2->x;
plr[v3].destParam2 = (unsigned char)v2->y; plr[v3].destParam2 = (unsigned char)v2->y;
plr[v3].destParam3 = (unsigned short)v2->wParam2; 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 ) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 12; plr[v3].destAction = ACTION_SPELL;
plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam1 = (unsigned char)v2->x;
plr[v3].destParam2 = (unsigned char)v2->y; plr[v3].destParam2 = (unsigned char)v2->y;
plr[v3].destParam3 = (unsigned short)v2->wParam2; 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); MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0);
else else
MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 1u); 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; 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); MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0);
else else
MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 1u); 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; plr[v3].destParam1 = (unsigned short)v2->wParam1;
} }
} }
@ -2704,7 +2704,7 @@ int __fastcall On_OPOBJT(struct TCmdParam1 *pCmd, int pnum)
v2 = pnum; v2 = pnum;
if ( currlevel == plr[pnum].plrlevel ) if ( currlevel == plr[pnum].plrlevel )
{ {
plr[v2].destAction = 18; plr[v2].destAction = ACTION_OPERATETK;
plr[v2].destParam1 = (unsigned short)pCmd->wParam1; 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]._mfutx,
monster[(unsigned short)v3->wParam1]._mfuty, monster[(unsigned short)v3->wParam1]._mfuty,
0); 0);
plr[v4].destAction = 20; plr[v4].destAction = ACTION_ATTACKMON;
plr[v4].destParam1 = (unsigned short)v3->wParam1; 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 ) if ( currlevel == plr[pnum].plrlevel )
{ {
MakePlrPath(pnum, plr[(unsigned short)pCmd->wParam1]._px, plr[(unsigned short)pCmd->wParam1]._py, 0); 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; 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 ) if ( currlevel == plr[pnum].plrlevel )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 22; plr[v3].destAction = ACTION_RATTACKMON;
plr[v3].destParam1 = (unsigned short)v2->wParam1; 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 ) if ( currlevel == plr[pnum].plrlevel )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 23; plr[v3].destAction = ACTION_RATTACKPLR;
plr[v3].destParam1 = (unsigned short)v2->wParam1; 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 ) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 24; plr[v3].destAction = ACTION_SPELLMON;
plr[v3].destParam1 = *(unsigned short *)&v2->x; plr[v3].destParam1 = *(unsigned short *)&v2->x;
plr[v3].destParam2 = (unsigned short)v2->wParam2; plr[v3].destParam2 = (unsigned short)v2->wParam2;
v4 = (unsigned short)v2->wParam1; 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 ) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 25; plr[v3].destAction = ACTION_SPELLPLR;
plr[v3].destParam1 = *(unsigned short *)&v2->x; plr[v3].destParam1 = *(unsigned short *)&v2->x;
plr[v3].destParam2 = (unsigned short)v2->wParam2; plr[v3].destParam2 = (unsigned short)v2->wParam2;
v4 = (unsigned short)v2->wParam1; 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 ) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 24; plr[v3].destAction = ACTION_SPELLMON;
plr[v3].destParam1 = *(unsigned short *)&v2->x; plr[v3].destParam1 = *(unsigned short *)&v2->x;
plr[v3].destParam2 = (unsigned short)v2->wParam2; plr[v3].destParam2 = (unsigned short)v2->wParam2;
plr[v3]._pSpell = (unsigned short)v2->wParam1; 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 ) if ( currlevel || *(_DWORD *)&spelldata[(unsigned short)pCmd->wParam1].sTownSpell )
{ {
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[v3].destAction = 25; plr[v3].destAction = ACTION_SPELLPLR;
plr[v3].destParam1 = *(unsigned short *)&v2->x; plr[v3].destParam1 = *(unsigned short *)&v2->x;
plr[v3].destParam2 = (unsigned short)v2->wParam2; plr[v3].destParam2 = (unsigned short)v2->wParam2;
plr[v3]._pSpell = (unsigned short)v2->wParam1; 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 ) if ( currlevel == plr[pnum].plrlevel )
{ {
MakePlrPath(pnum, (unsigned char)pCmd->x, (unsigned char)pCmd->y, 0); 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; 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]._pSpell = SPL_NOVA;
plr[v3]._pSplType = 4; plr[v3]._pSplType = 4;
plr[v3]._pSplFrom = 3; plr[v3]._pSplFrom = 3;
plr[v3].destAction = 12; plr[v3].destAction = ACTION_SPELL;
plr[v3].destParam1 = (unsigned char)v2->x; plr[v3].destParam1 = (unsigned char)v2->x;
plr[v3].destParam2 = (unsigned char)v2->y; plr[v3].destParam2 = (unsigned char)v2->y;
} }

2
Source/multi.cpp

@ -981,7 +981,7 @@ void __cdecl SetupLocalCoords()
plr[myplr]._pLvlChanging = 1; plr[myplr]._pLvlChanging = 1;
plr[myplr].pLvlLoad = 0; plr[myplr].pLvlLoad = 0;
plr[myplr]._pmode = PM_NEWLVL; plr[myplr]._pmode = PM_NEWLVL;
plr[myplr].destAction = -1; plr[myplr].destAction = ACTION_NONE;
} }
// 52572C: using guessed type int leveldebug; // 52572C: using guessed type int leveldebug;
// 5BB1ED: using guessed type char leveltype; // 5BB1ED: using guessed type char leveltype;

2
Source/pack.cpp

@ -169,7 +169,7 @@ void __fastcall UnPackPlayer(PkPlayerStruct *pPack, int pnum, bool killok)
pPlayer->_ptargy = (unsigned char)pPack->targy; pPlayer->_ptargy = (unsigned char)pPack->targy;
pPlayer->plrlevel = (unsigned char)pPack->plrlevel; pPlayer->plrlevel = (unsigned char)pPack->plrlevel;
ClrPlrPath(pnum); ClrPlrPath(pnum);
pPlayer->destAction = -1; pPlayer->destAction = ACTION_NONE;
strcpy(pPlayer->_pName, pPack->pName); strcpy(pPlayer->_pName, pPack->pName);
_LOBYTE(pPlayer->_pClass) = pPack->pClass; _LOBYTE(pPlayer->_pClass) = pPack->pClass;
InitPlayer(pnum, TRUE); InitPlayer(pnum, TRUE);

74
Source/player.cpp

@ -875,7 +875,7 @@ void __fastcall InitPlayer(int pnum, BOOL FirstTime)
plr[pnum]._px = plr[pnum].WorldX; plr[pnum]._px = plr[pnum].WorldX;
plr[pnum]._py = plr[pnum].WorldY; plr[pnum]._py = plr[pnum].WorldY;
plr[pnum].walkpath[0] = -1; plr[pnum].walkpath[0] = -1;
plr[pnum].destAction = -1; plr[pnum].destAction = ACTION_NONE;
if ( pnum == myplr ) { if ( pnum == myplr ) {
plr[pnum]._plid = AddLight(plr[pnum].WorldX, plr[pnum].WorldY, plr[pnum]._pLightRad); plr[pnum]._plid = AddLight(plr[pnum].WorldX, plr[pnum].WorldY, plr[pnum]._pLightRad);
@ -2049,7 +2049,7 @@ void __fastcall InitLevelChange(int pnum)
} }
ClrPlrPath(pnum); ClrPlrPath(pnum);
plr[pnum].destAction = -1; plr[pnum].destAction = ACTION_NONE;
plr[pnum]._pLvlChanging = 1; plr[pnum]._pLvlChanging = 1;
if ( pnum == myplr ) { if ( pnum == myplr ) {
@ -3152,35 +3152,35 @@ void __fastcall CheckNewPath(int pnum)
if ( (unsigned int)pnum >= MAX_PLRS ) if ( (unsigned int)pnum >= MAX_PLRS )
TermMsg("CheckNewPath: illegal player %d", pnum); TermMsg("CheckNewPath: illegal player %d", pnum);
v2 = v1; 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); 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); MakePlrPath(v1, plr[plr[v2].destParam1]._px, plr[plr[v2].destParam1]._py, 0);
if ( plr[v2].walkpath[0] == -1 ) if ( plr[v2].walkpath[0] == -1 )
{ {
v18 = plr[v2].destAction; v18 = plr[v2].destAction;
if ( v18 == -1 ) if ( v18 == ACTION_NONE )
return; return;
v19 = plr[v2]._pmode; v19 = plr[v2]._pmode;
if ( v19 == PM_STAND ) if ( v19 == PM_STAND )
{ {
switch ( v18 ) switch ( v18 )
{ {
case 9: case ACTION_ATTACK:
v20 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, plr[v2].destParam1, plr[v2].destParam2); v20 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, plr[v2].destParam1, plr[v2].destParam2);
goto LABEL_52; goto LABEL_52;
case 10: case ACTION_RATTACK:
v30 = plr[v2].WorldY; v30 = plr[v2].WorldY;
v31 = plr[v2].WorldX; v31 = plr[v2].WorldX;
v32 = &plr[v2].destParam2; v32 = &plr[v2].destParam2;
v33 = &plr[v2].destParam1; v33 = &plr[v2].destParam1;
goto LABEL_59; goto LABEL_59;
case 12: case ACTION_SPELL:
v39 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, plr[v2].destParam1, plr[v2].destParam2); v39 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, plr[v2].destParam1, plr[v2].destParam2);
StartSpell(p, v39, plr[v2].destParam1, plr[v2].destParam2); StartSpell(p, v39, plr[v2].destParam1, plr[v2].destParam2);
v40 = plr[v2].destParam3; v40 = plr[v2].destParam3;
goto LABEL_66; goto LABEL_66;
case 13: case ACTION_OPERATE:
v46 = plr[v2].destParam1; v46 = plr[v2].destParam1;
arglista = v46; arglista = v46;
v47 = v46; v47 = v46;
@ -3197,7 +3197,7 @@ void __fastcall CheckNewPath(int pnum)
if ( object[v47]._oBreak != 1 ) if ( object[v47]._oBreak != 1 )
goto LABEL_73; goto LABEL_73;
goto LABEL_80; goto LABEL_80;
case 14: case ACTION_DISARM:
v50 = plr[v2].destParam1; v50 = plr[v2].destParam1;
arglista = v50; arglista = v50;
v47 = v50; v47 = v50;
@ -3227,7 +3227,7 @@ LABEL_73:
OperateObject(p, arglista, 0); OperateObject(p, arglista, 0);
} }
break; break;
case 15: case ACTION_PICKUPITEM:
if ( v1 == myplr ) if ( v1 == myplr )
{ {
v53 = plr[v2].destParam1; v53 = plr[v2].destParam1;
@ -3241,7 +3241,7 @@ LABEL_73:
} }
} }
break; break;
case 16: case ACTION_PICKUPAITEM:
if ( v1 == myplr ) if ( v1 == myplr )
{ {
v57 = plr[v2].destParam1; v57 = plr[v2].destParam1;
@ -3252,15 +3252,15 @@ LABEL_73:
NetSendCmdGItem(1u, CMD_REQUESTAGITEM, myplr, myplr, v57); NetSendCmdGItem(1u, CMD_REQUESTAGITEM, myplr, myplr, v57);
} }
break; break;
case 17: case ACTION_TALK:
if ( v1 == myplr ) if ( v1 == myplr )
TalkToTowner(v1, plr[v2].destParam1); TalkToTowner(v1, plr[v2].destParam1);
break; break;
case 18: case ACTION_OPERATETK:
if ( object[plr[v2].destParam1]._oBreak != 1 ) if ( object[plr[v2].destParam1]._oBreak != 1 )
OperateObject(v1, plr[v2].destParam1, 1u); OperateObject(v1, plr[v2].destParam1, 1u);
break; break;
case 20: case ACTION_ATTACKMON:
v21 = plr[v2].destParam1; v21 = plr[v2].destParam1;
v22 = plr[v2].destParam1; v22 = plr[v2].destParam1;
v23 = abs(plr[v2].WorldX - monster[v22]._mfutx); v23 = abs(plr[v2].WorldX - monster[v22]._mfutx);
@ -3272,7 +3272,7 @@ LABEL_73:
if ( v25 && v25 != QUEST_VILE14 ) if ( v25 && v25 != QUEST_VILE14 )
goto LABEL_56; goto LABEL_56;
goto LABEL_81; goto LABEL_81;
case 21: case ACTION_ATTACKPLR:
v26 = plr[v2].destParam1; v26 = plr[v2].destParam1;
v27 = abs(plr[v2].WorldX - plr[v26]._px); v27 = abs(plr[v2].WorldX - plr[v26]._px);
v28 = abs(plr[v2].WorldY - plr[v26]._py); v28 = abs(plr[v2].WorldY - plr[v26]._py);
@ -3282,7 +3282,7 @@ LABEL_73:
LABEL_52: LABEL_52:
v29 = v1; v29 = v1;
goto LABEL_82; goto LABEL_82;
case 22: case ACTION_RATTACKMON:
v21 = plr[v2].destParam1; v21 = plr[v2].destParam1;
v34 = plr[v2].destParam1; v34 = plr[v2].destParam1;
v35 = GetDirection(plr[v2]._px, plr[v2]._py, monster[v34]._mfutx, monster[v34]._mfuty); v35 = GetDirection(plr[v2]._px, plr[v2]._py, monster[v34]._mfutx, monster[v34]._mfuty);
@ -3293,7 +3293,7 @@ LABEL_56:
else else
StartRangeAttack(p, v35, monster[v34]._mfutx, monster[v34]._mfuty); StartRangeAttack(p, v35, monster[v34]._mfutx, monster[v34]._mfuty);
break; break;
case 23: case ACTION_RATTACKPLR:
v30 = plr[v2]._py; v30 = plr[v2]._py;
v37 = plr[v2].destParam1; v37 = plr[v2].destParam1;
v31 = plr[v2]._px; v31 = plr[v2]._px;
@ -3303,12 +3303,12 @@ LABEL_59:
v38 = GetDirection(v31, v30, *v33, *v32); v38 = GetDirection(v31, v30, *v33, *v32);
StartRangeAttack(p, v38, *v33, *v32); StartRangeAttack(p, v38, *v33, *v32);
break; break;
case 24: case ACTION_SPELLMON:
v41 = plr[v2].destParam1; v41 = plr[v2].destParam1;
v42 = &monster[v41]._mfuty; v42 = &monster[v41]._mfuty;
v43 = &monster[v41]._mfutx; v43 = &monster[v41]._mfutx;
goto LABEL_65; goto LABEL_65;
case 25: case ACTION_SPELLPLR:
v44 = plr[v2].destParam1; v44 = plr[v2].destParam1;
v42 = &plr[v44]._py; v42 = &plr[v44]._py;
v43 = &plr[v44]._px; v43 = &plr[v44]._px;
@ -3317,7 +3317,7 @@ LABEL_65:
StartSpell(p, v45, *v43, *v42); StartSpell(p, v45, *v43, *v42);
v40 = plr[v2].destParam2; v40 = plr[v2].destParam2;
goto LABEL_66; goto LABEL_66;
case 26: case ACTION_SPELLWALL:
StartSpell(v1, plr[v2].destParam3, plr[v2].destParam1, plr[v2].destParam2); StartSpell(v1, plr[v2].destParam3, plr[v2].destParam1, plr[v2].destParam2);
plr[v2]._pVar3 = plr[v2].destParam3; plr[v2]._pVar3 = plr[v2].destParam3;
v40 = plr[v2].destParam4; v40 = plr[v2].destParam4;
@ -3334,16 +3334,16 @@ LABEL_66:
{ {
switch ( v18 ) switch ( v18 )
{ {
case 9: case ACTION_ATTACK:
v61 = GetDirection(plr[v2]._px, plr[v2]._py, plr[v2].destParam1, plr[v2].destParam2); v61 = GetDirection(plr[v2]._px, plr[v2]._py, plr[v2].destParam1, plr[v2].destParam2);
LABEL_105: LABEL_105:
v62 = v1; v62 = v1;
LABEL_106: LABEL_106:
StartAttack(v62, v61); StartAttack(v62, v61);
LABEL_107: LABEL_107:
plr[v2].destAction = -1; plr[v2].destAction = ACTION_NONE;
break; break;
case 20: case ACTION_ATTACKMON:
v63 = plr[v2].destParam1; v63 = plr[v2].destParam1;
v64 = abs(plr[v2].WorldX - monster[v63]._mfutx); v64 = abs(plr[v2].WorldX - monster[v63]._mfutx);
v65 = abs(plr[v2].WorldY - monster[v63]._mfuty); v65 = abs(plr[v2].WorldY - monster[v63]._mfuty);
@ -3351,7 +3351,7 @@ LABEL_107:
goto LABEL_107; goto LABEL_107;
v61 = GetDirection(plr[v2]._px, plr[v2]._py, monster[v63]._mfutx, monster[v63]._mfuty); v61 = GetDirection(plr[v2]._px, plr[v2]._py, monster[v63]._mfutx, monster[v63]._mfuty);
goto LABEL_105; goto LABEL_105;
case 21: case ACTION_ATTACKPLR:
v66 = plr[v2].destParam1; v66 = plr[v2].destParam1;
v67 = abs(plr[v2].WorldX - plr[v66]._px); v67 = abs(plr[v2].WorldX - plr[v66]._px);
v68 = abs(plr[v2].WorldY - plr[v66]._py); 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); v61 = GetDirection(plr[v2]._px, plr[v2]._py, plr[v66]._px, plr[v66]._py);
v62 = p; v62 = p;
goto LABEL_106; goto LABEL_106;
case 13: case ACTION_OPERATE:
v69 = plr[v2].destParam1; v69 = plr[v2].destParam1;
arglistb = v69; arglistb = v69;
v70 = v69; v70 = v69;
@ -3392,20 +3392,20 @@ LABEL_107:
v74 = plr[v2].destAction; v74 = plr[v2].destAction;
switch ( v74 ) switch ( v74 )
{ {
case 10: case ACTION_RATTACK:
v75 = &plr[v2].destParam2; v75 = &plr[v2].destParam2;
v76 = &plr[v2].destParam1; v76 = &plr[v2].destParam1;
LABEL_133: LABEL_133:
v79 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, *v76, *v75); v79 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, *v76, *v75);
StartRangeAttack(p, v79, *v76, *v75); StartRangeAttack(p, v79, *v76, *v75);
plr[v2].destAction = -1; plr[v2].destAction = ACTION_NONE;
break; break;
case 22: case ACTION_RATTACKMON:
v77 = plr[v2].destParam1; v77 = plr[v2].destParam1;
v75 = &monster[v77]._mfuty; v75 = &monster[v77]._mfuty;
v76 = &monster[v77]._mfutx; v76 = &monster[v77]._mfutx;
goto LABEL_133; goto LABEL_133;
case 23: case ACTION_RATTACKPLR:
v78 = plr[v2].destParam1; v78 = plr[v2].destParam1;
v75 = &plr[v78]._py; v75 = &plr[v78]._py;
v76 = &plr[v78]._px; v76 = &plr[v78]._px;
@ -3417,16 +3417,16 @@ LABEL_133:
v80 = plr[v2].destAction; v80 = plr[v2].destAction;
switch ( v80 ) switch ( v80 )
{ {
case 12: case ACTION_SPELL:
v81 = &plr[v2].destParam2; v81 = &plr[v2].destParam2;
v82 = &plr[v2].destParam1; v82 = &plr[v2].destParam1;
break; break;
case 24: case ACTION_SPELLMON:
v83 = plr[v2].destParam1; v83 = plr[v2].destParam1;
v81 = &monster[v83]._mfuty; v81 = &monster[v83]._mfuty;
v82 = &monster[v83]._mfutx; v82 = &monster[v83]._mfutx;
break; break;
case 25: case ACTION_SPELLPLR:
v84 = plr[v2].destParam1; v84 = plr[v2].destParam1;
v81 = &plr[v84]._py; v81 = &plr[v84]._py;
v82 = &plr[v84]._px; v82 = &plr[v84]._px;
@ -3445,10 +3445,10 @@ LABEL_133:
if ( v1 == myplr ) if ( v1 == myplr )
{ {
v3 = plr[v2].destAction; v3 = plr[v2].destAction;
if ( v3 == 20 || v3 == 21 ) if ( v3 == ACTION_ATTACKMON || v3 == ACTION_ATTACKPLR )
{ {
v4 = plr[v2].destParam1; v4 = plr[v2].destParam1;
v5 = v3 == 20; v5 = v3 == ACTION_ATTACKMON;
v6 = plr[v2]._px; v6 = plr[v2]._px;
arglist = plr[v2].destParam1; arglist = plr[v2].destParam1;
if ( v5 ) if ( v5 )
@ -3479,7 +3479,7 @@ LABEL_133:
TalktoMonster(arglist); TalktoMonster(arglist);
else else
StartAttack(p, v11); StartAttack(p, v11);
plr[v2].destAction = -1; plr[v2].destAction = ACTION_NONE;
} }
} }
} }
@ -3553,7 +3553,7 @@ LABEL_32:
{ {
StartStand(p, plr[v2]._pdir); StartStand(p, plr[v2]._pdir);
LABEL_143: LABEL_143:
plr[v2].destAction = -1; plr[v2].destAction = ACTION_NONE;
return; return;
} }
} }

2
Source/spells.cpp

@ -235,7 +235,7 @@ void __fastcall DoResurrect(int pnum, int rid)
} }
ClrPlrPath(rid); ClrPlrPath(rid);
plr[rid].destAction = -1; plr[rid].destAction = ACTION_NONE;
plr[rid]._pInvincible = 0; plr[rid]._pInvincible = 0;
PlacePlayer(rid); PlacePlayer(rid);

20
enums.h

@ -2700,3 +2700,23 @@ enum shrine_type {
SHRINE_TAINTED = 25, SHRINE_TAINTED = 25,
NUM_SHRINETYPE 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,
};

Loading…
Cancel
Save