Browse Source

Clean up InitCows

pull/25/head
Anders Jenbo 7 years ago
parent
commit
574a8b14f0
  1. 86
      Source/towners.cpp
  2. 2
      Source/towners.h

86
Source/towners.cpp

@ -8,7 +8,7 @@ int numtowners; // idb
DWORD sgdwCowClicks;
int bannerflag; // weak // unused 0x6AAC28
int boyloadflag; // weak
void *pCowCels; // idb
BYTE *pCowCels;
TownerStruct towner[16];
const int snSFX[3][3] = {
@ -347,60 +347,36 @@ void __cdecl InitDrunk()
void __cdecl InitCows()
{
unsigned char *v0; // eax
int v1; // ecx
signed int v2; // ebx
int v3; // esi
int v4; // ebp
int v5; // eax
void **v6; // ecx
int v7; // edi
int v9; // edx
int v10; // eax
int v11; // ecx
_DWORD *v12; // esi
int v13; // edx
_DWORD *v14; // esi
_DWORD *v15; // eax
int v16; // [esp+10h] [ebp-4h]
v0 = LoadFileInMem("Towners\\Animals\\Cow.CEL", 0);
v1 = numtowners;
pCowCels = v0;
v2 = 0;
do {
v3 = TownCowX[v2];
v4 = TownCowDir[v2];
v16 = TownCowY[v2];
InitTownerInfo(v1, 128, 0, TOWN_COW, TownCowX[v2], v16, -1, 10);
v5 = numtowners;
v6 = (void **)&towner[numtowners]._tNData;
*v6 = pCowCels;
SetTownerGPtrs(*v6, (void **)towner[v5]._tNAnim);
v7 = numtowners;
towner[numtowners]._tNFrames = 12;
NewTownerAnim(v7, towner[0]._tNAnim[v4 + 58 * v7], 12, 3);
v7 *= 232;
*(int *)((char *)&towner[0]._tAnimFrame + v7) = random(0, 11) + 1;
*(int *)((char *)&towner[0]._tSelFlag + v7) = 1;
strcpy(&towner[0]._tName[v7], "Cow");
v9 = v3 + cowoffx[v4];
v10 = v16 + cowoffy[v4];
v11 = numtowners;
v12 = (_DWORD *)((char *)dMonster + 4 * (v10 + 112 * v3));
if (!*v12)
*v12 = -1 - numtowners;
v13 = 112 * v9;
v14 = (_DWORD *)((char *)dMonster + 4 * (v13 + v16));
if (!*v14)
*v14 = -1 - v11;
v15 = (_DWORD *)((char *)dMonster + 4 * (v10 + v13));
if (!*v15)
*v15 = -1 - v11;
++v2;
v1 = v11 + 1;
numtowners = v1;
} while (v2 < 3);
int i, dir, tnum;
int x, y, xo, yo;
pCowCels = LoadFileInMem("Towners\\Animals\\Cow.CEL", 0);
for (i = 0; i < 3; i++) {
dir = TownCowDir[i];
InitTownerInfo(numtowners, 128, 0, TOWN_COW, TownCowX[i], TownCowY[i], -1, 10);
tnum = numtowners;
towner[tnum]._tNData = pCowCels;
SetTownerGPtrs(towner[tnum]._tNData, (void **)towner[tnum]._tNAnim);
towner[tnum]._tNFrames = 12;
NewTownerAnim(numtowners, towner[tnum]._tNAnim[dir], towner[tnum]._tNFrames, 3);
towner[tnum]._tAnimFrame = random(0, 11) + 1;
towner[tnum]._tSelFlag = 1;
strcpy(towner[tnum]._tName, "Cow");
x = TownCowX[i];
y = TownCowY[i];
xo = x + cowoffx[dir];
yo = y + cowoffy[dir];
if (!dMonster[x][yo])
dMonster[x][yo] = -(tnum + 1);
if (!dMonster[xo][y])
dMonster[xo][y] = -(tnum + 1);
if (!dMonster[xo][yo])
dMonster[xo][yo] = -(tnum + 1);
tnum++;
numtowners = tnum;
}
}
// 6AAC2C: using guessed type int boyloadflag;

2
Source/towners.h

@ -6,7 +6,7 @@ extern int storeflag; // weak
extern int numtowners; // idb
extern int bannerflag; // weak // unused 0x6AAC28
extern int boyloadflag; // weak
extern void *pCowCels; // idb
extern BYTE *pCowCels; // idb
extern TownerStruct towner[16];
int __fastcall GetActiveTowner(int t);

Loading…
Cancel
Save