From 2db187faf57f98ffe4fe4a68d77a8a1dc60bbade Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 14 Oct 2018 20:57:19 +0200 Subject: [PATCH] Correct AnimStruct names (#417) Fixes #384 --- Source/dead.cpp | 8 ++-- Source/missiles.cpp | 16 +++---- Source/monster.cpp | 110 ++++++++++++++++++++++---------------------- structs.h | 9 ++-- 4 files changed, 71 insertions(+), 72 deletions(-) diff --git a/Source/dead.cpp b/Source/dead.cpp index a1229b708..e5fcad508 100644 --- a/Source/dead.cpp +++ b/Source/dead.cpp @@ -21,8 +21,8 @@ void __cdecl InitDead() for (i=0; i < nummtypes; i++) { if (!mtypes[Monsters[i].mtype]) { for ( j=0; j < 8; j++) - dead[idx]._deadData[j] = Monsters[i].Anims[MA_DEATH].Frames[j]; - dead[idx]._deadFrame = Monsters[i].Anims[MA_DEATH].Rate; + dead[idx]._deadData[j] = Monsters[i].Anims[MA_DEATH].Data[j]; + dead[idx]._deadFrame = Monsters[i].Anims[MA_DEATH].Frames; dead[idx]._deadWidth = Monsters[i].flags_1; dead[idx]._deadWidth2 = Monsters[i].flags_2; dead[idx]._deadtrans = 0; @@ -53,8 +53,8 @@ void __cdecl InitDead() int ii = monstactive[i]; if ( monster[ii]._uniqtype ) { for (j=0; j < 8; j++) - dead[idx]._deadData[j] = monster[ii].MType->Anims[MA_DEATH].Frames[j]; - dead[idx]._deadFrame = monster[ii].MType->Anims[MA_DEATH].Rate; + dead[idx]._deadData[j] = monster[ii].MType->Anims[MA_DEATH].Data[j]; + dead[idx]._deadFrame = monster[ii].MType->Anims[MA_DEATH].Frames; dead[idx]._deadWidth = monster[ii].MType->flags_1; dead[idx]._deadWidth2 = monster[ii].MType->flags_2; dead[idx]._deadtrans = monster[ii]._uniqtrans + 4; diff --git a/Source/missiles.cpp b/Source/missiles.cpp index bff5ce9ab..6617cbcec 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -3384,9 +3384,9 @@ void __fastcall AddRhino(int mi, int sx, int sy, int dx, int dy, int midir, int v13 = i; missile[v13]._miAnimFlags = 0; missile[v13]._mimfnum = midir; - missile[v13]._miAnimData = v12->Frames[midir]; - missile[v13]._miAnimDelay = v12->Delay; - missile[v13]._miAnimLen = v12->Rate; + missile[v13]._miAnimData = v12->Data[midir]; + missile[v13]._miAnimDelay = v12->Rate; + missile[v13]._miAnimLen = v12->Frames; v14 = monster[v9].MType; missile[v13]._miAnimWidth = v14->flags_1; missile[v13]._miAnimWidth2 = v14->flags_2; @@ -3424,9 +3424,9 @@ void __fastcall miss_null_32(int mi, int sx, int sy, int dx, int dy, int midir, v12 = v10; missile[v12]._mimfnum = midir; missile[v12]._miAnimFlags = 0; - missile[v12]._miAnimData = v11->Frames[midir]; - missile[v12]._miAnimDelay = v11->Delay; - missile[v12]._miAnimLen = v11->Rate; + missile[v12]._miAnimData = v11->Data[midir]; + missile[v12]._miAnimDelay = v11->Rate; + missile[v12]._miAnimLen = v11->Frames; v13 = monster[id].MType; missile[v12]._miAnimWidth = v13->flags_1; missile[v12]._miAnimWidth2 = v13->flags_2; @@ -6439,7 +6439,7 @@ void __fastcall mi_null_32(int i) missile[v2]._miyvel = -missile[v2]._miyvel; v14 = opposite[v13]; missile[v2]._mimfnum = v14; - v15 = monster[v4].MType->Anims[MA_WALK].Frames[v14]; + v15 = monster[v4].MType->Anims[MA_WALK].Data[v14]; ++missile[v2]._miVar2; missile[v2]._miAnimData = v15; if ( v10 > 0 ) @@ -7407,7 +7407,7 @@ void __cdecl missiles_process_charge() { v7 = &v5->Anims[MA_SPECIAL]; } - missile[v2]._miAnimData = v7->Frames[v3]; + missile[v2]._miAnimData = v7->Data[v3]; } } } diff --git a/Source/monster.cpp b/Source/monster.cpp index f260aa670..ae223ed97 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -379,9 +379,9 @@ void __fastcall InitMonsterTRN(int monst, BOOL special) for ( int k = 0; k < 8; k++ ) { Cl2ApplyTrans( - Monsters[monst].Anims[j].Frames[k], + Monsters[monst].Anims[j].Data[k], Monsters[monst].trans_file, - Monsters[monst].Anims[j].Rate); + Monsters[monst].Anims[j].Frames); } } } @@ -577,7 +577,7 @@ void __fastcall InitMonsterGFX(int monst) for ( int i = 0; i < 8; i++ ) { - Monsters[monst].Anims[anim].Frames[i] = + Monsters[monst].Anims[anim].Data[i] = &celBuf[((int *)celBuf)[i]]; } } @@ -585,14 +585,14 @@ void __fastcall InitMonsterGFX(int monst) { for ( int i = 0; i < 8; i++ ) { - Monsters[monst].Anims[anim].Frames[i] = celBuf; + Monsters[monst].Anims[anim].Data[i] = celBuf; } } } // TODO: either the AnimStruct members have wrong naming or the MonsterData ones it seems - Monsters[monst].Anims[anim].Rate = monsterdata[mtype].Frames[anim]; - Monsters[monst].Anims[anim].Delay = monsterdata[mtype].Rate[anim]; + Monsters[monst].Anims[anim].Frames = monsterdata[mtype].Frames[anim]; + Monsters[monst].Anims[anim].Rate = monsterdata[mtype].Rate[anim]; } Monsters[monst].flags_1 = monsterdata[mtype].flags; @@ -702,11 +702,11 @@ void __fastcall InitMonster(int i, int rd, int mtype, int x, int y) monster[i].mName = monst->MData->mName; monster[i].MType = monst; monster[i].MData = monst->MData; - monster[i]._mAnimData = monst->Anims[MA_STAND].Frames[rd]; - monster[i]._mAnimDelay = monst->Anims[MA_STAND].Delay; - monster[i]._mAnimCnt = random(88, monst->Anims[MA_STAND].Delay - 1); - monster[i]._mAnimLen = monst->Anims[MA_STAND].Rate; - monster[i]._mAnimFrame = random(88, monst->Anims[MA_STAND].Rate - 1) + 1; + monster[i]._mAnimData = monst->Anims[MA_STAND].Data[rd]; + monster[i]._mAnimDelay = monst->Anims[MA_STAND].Rate; + monster[i]._mAnimCnt = random(88, monst->Anims[MA_STAND].Rate - 1); + monster[i]._mAnimLen = monst->Anims[MA_STAND].Frames; + monster[i]._mAnimFrame = random(88, monst->Anims[MA_STAND].Frames - 1) + 1; if ( monst->mtype == MT_DIABLO ) { @@ -758,7 +758,7 @@ void __fastcall InitMonster(int i, int rd, int mtype, int x, int y) if ( monster[i]._mAi == AI_GARG ) { - monster[i]._mAnimData = monst->Anims[MA_SPECIAL].Frames[rd]; + monster[i]._mAnimData = monst->Anims[MA_SPECIAL].Data[rd]; monster[i]._mAnimFrame = 1; monster[i]._mFlags |= 4u; monster[i]._mmode = MM_SATTACK; @@ -1107,7 +1107,7 @@ void __fastcall PlaceUniqueMonst(int uniqindex, int miniontype, int unpackfilesi if ( Monst->_mAi != AI_GARG ) { - Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Frames[Monst->_mdir]; + Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[Monst->_mdir]; Monst->_mAnimFrame = random(88, Monst->_mAnimLen - 1) + 1; Monst->_mFlags &= 0xFFFFFFFB; Monst->_mmode = MM_STAND; @@ -1271,7 +1271,7 @@ void __fastcall PlaceGroup(int mtype, int num, int leaderf, int leader) if ( monster[nummonsters]._mAi != AI_GARG ) { - monster[nummonsters]._mAnimData = monster[nummonsters].MType->Anims[MA_STAND].Frames[monster[nummonsters]._mdir]; + monster[nummonsters]._mAnimData = monster[nummonsters].MType->Anims[MA_STAND].Data[monster[nummonsters]._mdir]; monster[nummonsters]._mAnimFrame = random(88, monster[nummonsters]._mAnimLen - 1) + 1; monster[nummonsters]._mFlags &= 0xFFFFFFFB; monster[nummonsters]._mmode = MM_STAND; @@ -1642,12 +1642,12 @@ int __fastcall AddMonster(int x, int y, int dir, int mtype, int InMap) void __fastcall NewMonsterAnim(int i, AnimStruct *anim, int md) { - monster[i]._mAnimData = anim->Frames[md]; + monster[i]._mAnimData = anim->Data[md]; monster[i]._mAnimCnt = 0; - monster[i]._mAnimLen = anim->Rate; + monster[i]._mAnimLen = anim->Frames; monster[i]._mAnimFrame = 1; monster[i]._mFlags &= 0xFFFFFFF9; - monster[i]._mAnimDelay = anim->Delay; + monster[i]._mAnimDelay = anim->Rate; monster[i]._mdir = md; } @@ -2727,9 +2727,9 @@ void __fastcall M_StartHeal(int i) if ( !monster[v1].MType ) TermMsg("M_StartHeal: Monster %d \"%s\" MType NULL", v1, monster[v2].mName); v3 = monster[v2].MType; - v4 = v3->Anims[MA_SPECIAL].Frames[monster[v2]._mdir]; + v4 = v3->Anims[MA_SPECIAL].Data[monster[v2]._mdir]; monster[v2]._mAnimData = v4; - v5 = v3->Anims[MA_SPECIAL].Rate; + v5 = v3->Anims[MA_SPECIAL].Frames; monster[v2]._mFlags |= 2u; monster[v2]._mAnimFrame = v5; monster[v2]._mmode = MM_HEAL; @@ -2796,9 +2796,9 @@ int __fastcall M_DoStand(int i) v3 = monster[v2].MType; v4 = monster[v2]._mdir; if ( v3->mtype == MT_GOLEM ) - v5 = v3->Anims[MA_WALK].Frames[v4]; + v5 = v3->Anims[MA_WALK].Data[v4]; else - v5 = v3->Anims[MA_STAND].Frames[v4]; + v5 = v3->Anims[MA_STAND].Data[v4]; monster[v2]._mAnimData = v5; if ( monster[v2]._mAnimFrame == monster[v2]._mAnimLen ) M_Enemy(v1); @@ -2830,7 +2830,7 @@ int __fastcall M_DoWalk(int i) if ( !monster[v1].MType ) TermMsg("M_DoWalk: Monster %d \"%s\" MType NULL", v1, monster[v2].mName); v4 = monster[v2]._mVar8; - if ( v4 == monster[v2].MType->Anims[MA_WALK].Rate ) + if ( v4 == monster[v2].MType->Anims[MA_WALK].Frames ) { v5 = monster[v2]._my; v6 = monster[v2]._mx; @@ -2882,7 +2882,7 @@ int __fastcall M_DoWalk2(int i) if ( !monster[v1].MType ) TermMsg("M_DoWalk2: Monster %d \"%s\" MType NULL", v1, monster[v2].mName); v3 = monster[v2]._mVar8; - if ( v3 == monster[v2].MType->Anims[MA_WALK].Rate ) + if ( v3 == monster[v2].MType->Anims[MA_WALK].Frames ) { v4 = monster[v2]._uniqtype == 0; dMonster[0][monster[v2]._mVar2 + 112 * monster[v2]._mVar1] = 0; @@ -2936,7 +2936,7 @@ int __fastcall M_DoWalk3(int i) if ( !monster[v1].MType ) TermMsg("M_DoWalk3: Monster %d \"%s\" MType NULL", v1, monster[v2].mName); v3 = monster[v2]._mVar8; - if ( v3 == monster[v2].MType->Anims[MA_WALK].Rate ) + if ( v3 == monster[v2].MType->Anims[MA_WALK].Frames ) { v4 = monster[v2]._mVar2; v5 = monster[v2]._my + 112 * monster[v2]._mx; @@ -3940,7 +3940,7 @@ int __fastcall M_DoDelay(int i) TermMsg("M_DoDelay: Monster %d \"%s\" MType NULL", v1, monster[v2].mName); v3 = M_GetDir(v1); v4 = monster[v2]._mAi == AI_LAZURUS; - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Frames[v3]; + monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v3]; if ( v4 ) { v5 = monster[v2]._mVar2; @@ -3999,7 +3999,7 @@ void __fastcall M_WalkDir(int i, int md) v3 = md; if ( (DWORD)i >= MAXMONSTERS ) TermMsg("M_WalkDir: Invalid monster %d", i); - v4 = monster[v2].MType->Anims[MA_WALK].Rate - 1; + v4 = monster[v2].MType->Anims[MA_WALK].Frames - 1; switch ( v3 ) { case DIR_S: @@ -4456,7 +4456,7 @@ void __fastcall MAI_Zombie(int i) M_StartAttack(arglist); } if ( v3->_mmode == MM_STAND ) - v3->_mAnimData = v3->MType->Anims[MA_STAND].Frames[v3->_mdir]; + v3->_mAnimData = v3->MType->Anims[MA_STAND].Data[v3->_mdir]; } } } @@ -4528,7 +4528,7 @@ void __fastcall MAI_SkelSd(int i) } LABEL_16: if ( v2->_mmode == MM_STAND ) - v2->_mAnimData = v2->MType->Anims[MA_STAND].Frames[v7]; + v2->_mAnimData = v2->MType->Anims[MA_STAND].Data[v7]; } } @@ -4658,7 +4658,7 @@ void __fastcall MAI_Snake(int i) M_StartAttack(arglist); LABEL_49: if ( esi3->_mmode == MM_STAND ) - esi3->_mAnimData = esi3->MType->Anims[MA_STAND].Frames[esi3->_mdir]; + esi3->_mAnimData = esi3->MType->Anims[MA_STAND].Data[esi3->_mdir]; return; } v17 = 10 - (unsigned char)esi3->_mint + random(105, 10); @@ -4878,7 +4878,7 @@ void __fastcall MAI_Bat(int i) } } if ( esi3->_mmode == MM_STAND ) - esi3->_mAnimData = esi3->MType->Anims[MA_STAND].Frames[midir]; + esi3->_mAnimData = esi3->MType->Anims[MA_STAND].Data[midir]; } } } @@ -4949,7 +4949,7 @@ void __fastcall MAI_SkelBow(int i) } } if ( v2->_mmode == MM_STAND ) - v2->_mAnimData = v2->MType->Anims[MA_STAND].Frames[v17]; + v2->_mAnimData = v2->MType->Anims[MA_STAND].Data[v17]; } } @@ -5003,7 +5003,7 @@ void __fastcall MAI_Fat(int i) } } if ( v2->_mmode == MM_STAND ) - v2->_mAnimData = v2->MType->Anims[MA_STAND].Frames[md]; + v2->_mAnimData = v2->MType->Anims[MA_STAND].Data[md]; } } @@ -5099,7 +5099,7 @@ void __fastcall MAI_Sneak(int i) if ( v2->_mmode == MM_STAND ) { if ( abs(v17) >= 2 || abs(v4) >= 2 || v15 >= 4 * (unsigned char)v2->_mint + 10 ) - v2->_mAnimData = v2->MType->Anims[MA_STAND].Frames[md]; + v2->_mAnimData = v2->MType->Anims[MA_STAND].Data[md]; else M_StartAttack(arglist); } @@ -5369,7 +5369,7 @@ void __fastcall MAI_Cleaver(int i) else M_StartAttack(arglist); if ( v2->_mmode == MM_STAND ) - v2->_mAnimData = v2->MType->Anims[MA_STAND].Frames[v7]; + v2->_mAnimData = v2->MType->Anims[MA_STAND].Data[v7]; } } @@ -5493,7 +5493,7 @@ void __fastcall MAI_Round(int i, unsigned char special) } } if ( v3->_mmode == MM_STAND ) - v3->_mAnimData = v3->MType->Anims[MA_STAND].Frames[md]; + v3->_mAnimData = v3->MType->Anims[MA_STAND].Data[md]; } } @@ -5570,7 +5570,7 @@ void __fastcall MAI_Ranged(int i, int missile_type, unsigned char special) } else { - monster[v4]._mAnimData = monster[v4].MType->Anims[MA_STAND].Frames[v20]; + monster[v4]._mAnimData = monster[v4].MType->Anims[MA_STAND].Data[v20]; } } } @@ -6417,7 +6417,7 @@ void __fastcall MAI_SkelKing(int i) } } if ( v2->_mmode == MM_STAND ) - v2->_mAnimData = v2->MType->Anims[MA_STAND].Frames[md]; + v2->_mAnimData = v2->MType->Anims[MA_STAND].Data[md]; } } // 679660: using guessed type char gbMaxPlayers; @@ -6571,7 +6571,7 @@ void __fastcall MAI_Rhino(int i) } } if ( esi3->_mmode == MM_STAND ) - esi3->_mAnimData = esi3->MType->Anims[MA_STAND].Frames[esi3->_mdir]; + esi3->_mAnimData = esi3->MType->Anims[MA_STAND].Data[esi3->_mdir]; } } @@ -6796,7 +6796,7 @@ void __fastcall MAI_Garbud(int i) MAI_Round(arglist, 1u); monster[v2]._mdir = v8; if ( monster[v2]._mmode == MM_STAND ) - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Frames[v8]; + monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v8]; } } @@ -6854,7 +6854,7 @@ void __fastcall MAI_Zhar(int i) MAI_Counselor(arglist); monster[v2]._mdir = v11; if ( monster[v2]._mmode == MM_STAND ) - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Frames[v11]; + monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v11]; } } @@ -6913,7 +6913,7 @@ void __fastcall MAI_SnotSpil(int i) } monster[v2]._mdir = v5; if ( monster[v2]._mmode == MM_STAND ) - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Frames[v5]; + monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v5]; } } // 5CF330: using guessed type int setpc_h; @@ -6983,7 +6983,7 @@ void __fastcall MAI_Lazurus(int i) monster[v2]._mdir = v5; v8 = monster[v2]._mmode; if ( v8 == MM_STAND || v8 == MM_TALK ) - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Frames[v5]; + monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v5]; } } // 679660: using guessed type char gbMaxPlayers; @@ -7025,7 +7025,7 @@ void __fastcall MAI_Lazhelp(int i) MAI_Succ(ia); monster[v2]._mdir = v5; if ( monster[v2]._mmode == MM_STAND ) - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Frames[v5]; + monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v5]; } } // 679660: using guessed type char gbMaxPlayers; @@ -7068,7 +7068,7 @@ void __fastcall MAI_Lachdanan(int i) } monster[v2]._mdir = v6; if ( monster[v2]._mmode == MM_STAND ) - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Frames[v6]; + monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v6]; } } @@ -7110,7 +7110,7 @@ void __fastcall MAI_Warlord(int i) monster[v2]._mdir = v5; v7 = monster[v2]._mmode; if ( v7 == MM_STAND || v7 == MM_TALK ) - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Frames[v5]; + monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v5]; } } @@ -7840,22 +7840,22 @@ void __fastcall SyncMonsterAnim(int i) case MM_STAND: case MM_DELAY: case MM_TALK: - v10 = v5->Anims[MA_STAND].Frames[v9]; + v10 = v5->Anims[MA_STAND].Data[v9]; goto LABEL_13; case MM_WALK: case MM_WALK2: case MM_WALK3: - v10 = v5->Anims[MA_WALK].Frames[v9]; + v10 = v5->Anims[MA_WALK].Data[v9]; goto LABEL_13; case MM_ATTACK: case MM_RATTACK: - v10 = v5->Anims[MA_ATTACK].Frames[v9]; + v10 = v5->Anims[MA_ATTACK].Data[v9]; goto LABEL_13; case MM_GOTHIT: - v10 = v5->Anims[MA_GOTHIT].Frames[v9]; + v10 = v5->Anims[MA_GOTHIT].Data[v9]; goto LABEL_13; case MM_DEATH: - v10 = v5->Anims[MA_DEATH].Frames[v9]; + v10 = v5->Anims[MA_DEATH].Data[v9]; goto LABEL_13; case MM_SATTACK: case MM_FADEIN: @@ -7863,21 +7863,21 @@ void __fastcall SyncMonsterAnim(int i) case MM_SPSTAND: case MM_RSPATTACK: case MM_HEAL: - v10 = v5->Anims[MA_SPECIAL].Frames[v9]; + v10 = v5->Anims[MA_SPECIAL].Data[v9]; LABEL_13: monster[v2]._mAnimData = v10; return; case MM_CHARGE: - v11 = v5->Anims[MA_ATTACK].Frames[v9]; + v11 = v5->Anims[MA_ATTACK].Data[v9]; monster[v2]._mAnimFrame = 1; monster[v2]._mAnimData = v11; - v12 = v5->Anims[MA_ATTACK].Rate; + v12 = v5->Anims[MA_ATTACK].Frames; break; default: - v13 = v5->Anims[MA_STAND].Frames[v9]; + v13 = v5->Anims[MA_STAND].Data[v9]; monster[v2]._mAnimFrame = 1; monster[v2]._mAnimData = v13; - v12 = v5->Anims[MA_STAND].Rate; + v12 = v5->Anims[MA_STAND].Frames; break; } monster[v2]._mAnimLen = v12; diff --git a/structs.h b/structs.h index 746ecbd6f..76b77abed 100644 --- a/structs.h +++ b/structs.h @@ -459,12 +459,11 @@ struct TSFX { // monster ////////////////////////////////////////////////// -struct AnimStruct // note: wrong names -{ - unsigned char *CMem; - unsigned char *Frames[8]; // probably Data[8] +struct AnimStruct { + BYTE *CMem; + BYTE *Data[8]; + int Frames; int Rate; - int Delay; }; struct MonsterData {