Browse Source

Clean up CheckMonsterHit

pull/4/head
Anders Jenbo 8 years ago committed by Dennis Duda
parent
commit
44b1349529
  1. 9
      Source/missiles.cpp
  2. 2
      Source/missiles.h
  3. 63
      Source/monster.cpp
  4. 2
      Source/monster.h
  5. 2
      Source/player.cpp
  6. 2
      structs.h

9
Source/missiles.cpp

@ -1237,7 +1237,7 @@ LABEL_7:
}
}
bool __fastcall MonsterTrapHit(int m, int mindam, int maxdam, int dist, int t, int shift)
BOOL __fastcall MonsterTrapHit(int m, int mindam, int maxdam, int dist, int t, int shift)
{
int v6; // esi
int v8; // ecx
@ -1280,8 +1280,9 @@ bool __fastcall MonsterTrapHit(int m, int mindam, int maxdam, int dist, int t, i
if ( v10 > 95 )
v10 = 95;
//_LOBYTE(v11) = CheckMonsterHit(arglist, (unsigned char *)&t);
if ( CheckMonsterHit(arglist, (bool *)&t) )
return t;
BOOL ret;
if ( CheckMonsterHit(arglist, &ret) )
return ret;
#ifdef _DEBUG
if ( v14 >= v10 && !debug_mode_dollar_sign && !debug_mode_key_inverted_v && monster[v6]._mmode != MM_STONE )
return 0;
@ -1346,7 +1347,7 @@ bool __fastcall MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, i
int v21; // edx
int v22; // eax
int v23; // [esp+Ch] [ebp-18h]
bool ret; // [esp+10h] [ebp-14h]
BOOL ret; // [esp+10h] [ebp-14h]
int v25; // [esp+14h] [ebp-10h]
int v26; // [esp+18h] [ebp-Ch]
int pnuma; // [esp+1Ch] [ebp-8h]

2
Source/missiles.h

@ -22,7 +22,7 @@ void __fastcall GetMissileVel(int i, int sx, int sy, int dx, int dy, int v);
void __fastcall PutMissile(int i);
void __fastcall GetMissilePos(int i);
void __fastcall MoveMissilePos(int i);
bool __fastcall MonsterTrapHit(int m, int mindam, int maxdam, int dist, int t, int shift);
BOOL __fastcall MonsterTrapHit(int m, int mindam, int maxdam, int dist, int t, int shift);
bool __fastcall MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, int t, int shift);
bool __fastcall PlayerMHit(int pnum, int m, int dist, int mind, int maxd, int mtype, int shift, int earflag);
bool __fastcall Plr2PlrMHit(int pnum, int p, int mindam, int maxdam, int dist, int mtype, int shift);

63
Source/monster.cpp

@ -807,7 +807,7 @@ void __cdecl ClrAllMonsters()
ClearMVars(i);
Monst->mName = "Invalid Monster";
Monst->_mgoal = 0;
Monst->_mmode = 0;
Monst->_mmode = MM_STAND;
Monst->_mVar1 = 0;
Monst->_mVar2 = 0;
Monst->_mx = 0;
@ -1112,7 +1112,7 @@ void __fastcall PlaceUniqueMonst(int uniqindex, int miniontype, int unpackfilesi
Monst->_mAnimData = Monst->MType->Anims[0].Frames[Monst->_mdir];
Monst->_mAnimFrame = random(88, Monst->_mAnimLen - 1) + 1;
Monst->_mFlags &= 0xFFFFFFFB;
Monst->_mmode = 0;
Monst->_mmode = MM_STAND;
}
}
@ -1886,7 +1886,7 @@ void __fastcall M_StartStand(int i, int md)
monster[v4]._mdir = v2;
monster[v4]._mVar1 = monster[v4]._mmode;
monster[v4]._mVar2 = 0;
monster[v4]._mmode = 0;
monster[v4]._mmode = MM_STAND;
v7 = monster[v4]._mx;
monster[v4]._mxoff = 0;
monster[v4]._myoff = 0;
@ -3036,7 +3036,7 @@ void __fastcall M_TryM2MHit(int i, int mid, int hper, int mind, int maxd)
int v8; // ebx
//int v9; // eax
int v11; // eax
bool ret; // [esp+Ch] [ebp-Ch]
BOOL ret; // [esp+Ch] [ebp-Ch]
char v13[4]; // [esp+10h] [ebp-8h]
char arglist[4]; // [esp+14h] [ebp-4h]
@ -3733,7 +3733,7 @@ void __fastcall M_Teleport(int i)
}
v15 = 0;
v3 = &monster[v1];
if ( v3->_mmode != 15 )
if ( v3->_mmode != MM_STONE )
{
v10 = (unsigned char)v3->_menemyx;
v12 = (unsigned char)v3->_menemyy;
@ -4693,7 +4693,7 @@ void __fastcall MAI_Snake(int i)
esi3 = &monster[esi1];
pattern[0] = 1;
pattern[1] = 1;
v3 = esi3->_mmode == 0;
v3 = esi3->_mmode == MM_STAND;
micaster = esi3->_menemy;
if ( v3 && esi3->_msquelch )
{
@ -4747,7 +4747,7 @@ void __fastcall MAI_Snake(int i)
{
PlayEffect(arglist, 0);
v26 = esi3->_my + 112 * esi3->_mx;
esi3->_mmode = 14;
esi3->_mmode = MM_CHARGE;
dMonster[0][v26] = -1 - v24;
}
goto LABEL_49;
@ -4913,7 +4913,7 @@ void __fastcall MAI_Bat(int i)
if ( AddMissile(esi3->_mx, esi3->_my, v1, v2, midir, 20, micaster, arglist, 0, 0) != -1 )
{
v12 = esi3->_my + 112 * esi3->_mx;
esi3->_mmode = 14;
esi3->_mmode = MM_CHARGE;
dMonster[0][v12] = -1 - arglist;
}
}
@ -5263,7 +5263,7 @@ void __fastcall MAI_Fireman(int i)
}
monster[esi3]._mdir = midir;
random(112, 100);
if ( monster[esi3]._mmode )
if ( monster[esi3]._mmode == MM_STAND )
return;
if ( abs(v6) < 2 && abs(v5) < 2 && _LOBYTE(monster[esi3]._mgoal) == 1 )
{
@ -6603,7 +6603,7 @@ void __fastcall MAI_Rhino(int i)
if ( esi3->MData->snd_special )
PlayEffect(arglist, 3);
v20 = esi3->_my + 112 * esi3->_mx;
esi3->_mmode = 14;
esi3->_mmode = MM_CHARGE;
dMonster[0][v20] = -1 - arglist;
}
}
@ -8802,37 +8802,26 @@ bool __fastcall CanTalkToMonst(int m)
return result;
}
bool __fastcall CheckMonsterHit(int m, bool *ret)
BOOL __fastcall CheckMonsterHit(int m, BOOL *ret)
{
int v2; // edi
bool *v3; // esi
int v4; // ecx
int v5; // eax
bool result; // al
unsigned char v7; // al
v2 = m;
v3 = ret;
if ( (unsigned int)m >= MAXMONSTERS )
if ( (DWORD)m >= MAXMONSTERS ) {
TermMsg("CheckMonsterHit: Invalid monster %d", m);
v4 = v2;
if ( monster[v2]._mAi == AI_GARG && (v5 = monster[v4]._mFlags, v5 & 4) )
{
_LOBYTE(v5) = v5 & 0xFB;
monster[v4]._mmode = MM_SATTACK;
monster[v4]._mFlags = v5;
result = 1;
*v3 = 1;
}
else
{
v7 = monster[v4].MType->mtype;
if ( v7 < MT_COUNSLR || v7 > MT_ADVOCATE || (result = 1, _LOBYTE(monster[v4]._mgoal) == 1) )
result = 0;
else
*v3 = 0;
if ( monster[m]._mAi == AI_GARG && monster[m]._mFlags & 4) {
monster[m]._mmode = MM_SATTACK;
monster[m]._mFlags &= 0xFFFFFFFB;
*ret = TRUE;
return TRUE;
}
return result;
if ( monster[m].MType->mtype < MT_COUNSLR || monster[m].MType->mtype > MT_ADVOCATE || monster[m]._mgoal == 1 ) {
return FALSE;
} else {
*ret = FALSE;
}
return TRUE;
}
int __fastcall encode_enemy(int m)

2
Source/monster.h

@ -159,7 +159,7 @@ int __cdecl PreSpawnSkeleton();
void __fastcall TalktoMonster(int i);
void __fastcall SpawnGolum(int i, int x, int y, int mi);
bool __fastcall CanTalkToMonst(int m);
bool __fastcall CheckMonsterHit(int m, bool *ret);
BOOL __fastcall CheckMonsterHit(int m, BOOL *ret);
int __fastcall encode_enemy(int m);
void __fastcall decode_enemy(int m, int enemy);

2
Source/player.cpp

@ -3199,7 +3199,7 @@ bool __fastcall PlrHitMonst(int pnum, int m)
int *v38; // ecx
int *v39; // ecx
int v40; // esi
bool ret; // [esp+Ch] [ebp-18h]
BOOL ret; // [esp+Ch] [ebp-18h]
bool v42; // [esp+10h] [ebp-14h]
int v48;
int v43; // [esp+14h] [ebp-10h]

2
structs.h

@ -553,7 +553,7 @@ struct CMonster
struct MonsterStruct // note: missing field _mAFNum
{
int _mMTidx;
int _mmode;
int _mmode; /* MON_MODE */
unsigned char _mgoal;
int _mgoalvar1;
int _mgoalvar2;

Loading…
Cancel
Save