Browse Source

Clean up GetPlrGFXSize

pull/4/head
Anders Jenbo 8 years ago committed by Dennis Duda
parent
commit
71a627ae8b
  1. 66
      Source/player.cpp
  2. 8
      Source/player.h

66
Source/player.cpp

@ -20,9 +20,9 @@ int deathdelay; // weak
int plr_dframe_size; // idb
int player_inf = 0x7F800000; // weak
char ArmourChar[4] = { 'L', 'M', 'H', 0 };
char WepChar[10] = { 'N', 'U', 'S', 'D', 'B', 'A', 'M', 'H', 'T', 0 };
char CharChar[4] = { 'W', 'R', 'S', 0 };
const char ArmourChar[4] = { 'L', 'M', 'H', 0 };
const char WepChar[10] = { 'N', 'U', 'S', 'D', 'B', 'A', 'M', 'H', 'T', 0 };
const char CharChar[4] = { 'W', 'R', 'S', 0 };
/* rdata */
@ -403,51 +403,33 @@ void __fastcall InitPlrGFXMem(int pnum)
// 686438: using guessed type char plr_gfx_flag;
// 69B7BC: using guessed type char plr_gfx_bflag;
int __fastcall GetPlrGFXSize(char *szCel)
DWORD __fastcall GetPlrGFXSize(char *szCel)
{
unsigned int v1; // ebx
char *v2; // edi
char *v3; // esi
char prefix[16]; // [esp+10Ch] [ebp-24h]
char dwInitParam[256]; // [esp+Ch] [ebp-124h]
char v6[16]; // [esp+10Ch] [ebp-24h]
unsigned int v7; // [esp+11Ch] [ebp-14h]
char *v8; // [esp+120h] [ebp-10h]
void *a1; // [esp+124h] [ebp-Ch]
char **v10; // [esp+128h] [ebp-8h]
unsigned int v11; // [esp+12Ch] [ebp-4h]
v1 = 0;
v8 = szCel;
v11 = 0;
v10 = ClassStrTbl;
do
{
v2 = ArmourChar;
do
{
v3 = WepChar;
do
{
sprintf(v6, "%c%c%c", CharChar[v1], *v2, *v3);
sprintf(dwInitParam, "PlrGFX\\%s\\%s\\%s%s.CL2", *v10, v6, v6, v8);
if ( WOpenFile(dwInitParam, &a1, 1) )
{
v7 = WGetFileSize(a1, 0);
WCloseFile(a1);
if ( v11 <= v7 )
v11 = v7;
void *file; // [esp+124h] [ebp-Ch]
DWORD size = 0; // [esp+11Ch] [ebp-14h]
DWORD result = 0;
int a = 0;
int w = 0;
for (int c = 0; c < sizeof(ClassStrTbl) / sizeof(ClassStrTbl[0]); c++) {
for (a = 0; ArmourChar[a]; a++) {
for (w = 0; WepChar[w]; w++) {
sprintf(prefix, "%c%c%c", CharChar[c], ArmourChar[a], WepChar[w]);
sprintf(dwInitParam, "PlrGFX\\%s\\%s\\%s%s.CL2", ClassStrTbl[c], prefix, prefix, szCel);
if ( WOpenFile(dwInitParam, &file, TRUE) ) {
size = WGetFileSize(file, 0);
WCloseFile(file);
if ( result <= size ) {
result = size;
}
}
++v3;
}
while ( *v3 );
++v2;
}
while ( *v2 );
++v10;
++v1;
}
while ( v1 < 3 );
return v11;
return result;
}
void __fastcall FreePlayerGFX(int pnum)

8
Source/player.h

@ -24,7 +24,7 @@ void __fastcall SetPlayerGPtrs(BYTE *pData, BYTE **pAnim); /* unsigned char *+**
void __fastcall LoadPlrGFX(int pnum, int gfxflag);
void __fastcall InitPlayerGFX(int pnum);
void __fastcall InitPlrGFXMem(int pnum);
int __fastcall GetPlrGFXSize(char *szCel);
DWORD __fastcall GetPlrGFXSize(char *szCel);
void __fastcall FreePlayerGFX(int pnum);
void __fastcall NewPlrAnim(int pnum, unsigned char *Peq, int numFrames, int Delay, int width);
void __fastcall ClearPlrPVars(int pnum);
@ -113,9 +113,9 @@ void __cdecl PlayDungMsgs();
/* data */
extern int player_inf;
extern char ArmourChar[4];
extern char WepChar[10];
extern char CharChar[4];
extern const char ArmourChar[4];
extern const char WepChar[10];
extern const char CharChar[4];
/* rdata */

Loading…
Cancel
Save