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]._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 )

46
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;
}

2
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;

2
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);

74
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;
}
}

2
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);

20
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,
};

Loading…
Cancel
Save