Browse Source

Clean up InitPlayerLoc

pull/4/head
Anders Jenbo 8 years ago committed by Dennis Duda
parent
commit
9c00d2d749
  1. 106
      Source/player.cpp

106
Source/player.cpp

@ -932,65 +932,55 @@ void __cdecl InitMultiView()
void __fastcall InitPlayerLoc(int pnum, BOOL flag)
{
int v2; // esi
int v3; // esi
int v4; // edi
int v5; // ebx
char *v6; // eax
int v7; // ebx
int v8; // edi
char *v9; // eax
int v10; // edi
int v11; // ebx
char *v12; // eax
BOOL v13; // [esp+Ch] [ebp-Ch]
int v14; // [esp+10h] [ebp-8h]
int v15; // [esp+10h] [ebp-8h]
int v16; // [esp+10h] [ebp-8h]
signed int v17; // [esp+14h] [ebp-4h]
signed int v18; // [esp+14h] [ebp-4h]
signed int v19; // [esp+14h] [ebp-4h]
v2 = pnum;
v13 = flag;
if ( (unsigned int)pnum >= MAX_PLRS )
if ( (DWORD)pnum >= MAX_PLRS ) {
TermMsg("InitPlayer: illegal player %d", pnum);
v3 = v2;
v14 = 0;
v4 = plr[v3].WorldX - 1;
v5 = plr[v3].WorldY + 1;
v6 = (char *)dpiece_defs_map_1 + 32 * gendung_get_dpiece_num_from_coord(v4, v5);
v17 = 2;
do
v14 |= *(unsigned short *)&v6[2 * v17++];
while ( v17 < 10 );
if ( v14 | dArch[v4][v5] | nSolidTable[dPiece[v4][v5]] )
plr[v3]._peflag = 1;
else
plr[v3]._peflag = 0;
if ( v13 == 1 && plr[v3]._peflag == 1 )
{
v7 = plr[v3].WorldX;
v15 = 0;
v8 = plr[v3].WorldY + 2;
v9 = (char *)dpiece_defs_map_1 + 32 * gendung_get_dpiece_num_from_coord(plr[v3].WorldX, v8);
v18 = 2;
do
v15 |= *(unsigned short *)&v9[2 * v18++];
while ( v18 < 10 );
if ( !(v15 | dArch[v7][v8]) )
{
v16 = 0;
v10 = plr[v3].WorldX - 2;
v11 = plr[v3].WorldY + 1;
v12 = (char *)dpiece_defs_map_1 + 32 * gendung_get_dpiece_num_from_coord(v10, v11);
v19 = 2;
do
v16 |= *(unsigned short *)&v12[2 * v19++];
while ( v19 < 10 );
if ( v16 | dArch[v10][v11] )
plr[v3]._peflag = 2;
}
}
int x = plr[pnum].WorldX - 1;
int y = plr[pnum].WorldY + 1;
int bitflags = 0;
USHORT *pieces = (USHORT *)dpiece_defs_map_1 + 16 * gendung_get_dpiece_num_from_coord(x, y);
int i;
for ( i = 2; i < 10; i++ ) {
bitflags |= pieces[i];
}
if ( bitflags | nSolidTable[dPiece[x][y]] | dArch[x][y] ) {
plr[pnum]._peflag = 1;
}
else {
plr[pnum]._peflag = 0;
}
if ( flag != 1 || plr[pnum]._peflag != 1 ) {
return;
}
x = plr[pnum].WorldX;
y = plr[pnum].WorldY + 2;
bitflags = 0;
pieces = (USHORT *)dpiece_defs_map_1 + 16 * gendung_get_dpiece_num_from_coord(x, y);
for ( i = 2; i < 10; i++ ) {
bitflags |= pieces[i];
}
if ( bitflags | dArch[x][y] ) {
return;
}
x = plr[pnum].WorldX - 2;
y = plr[pnum].WorldY + 1;
bitflags = 0;
pieces = (USHORT *)dpiece_defs_map_1 + 16 * gendung_get_dpiece_num_from_coord(x, y);
for ( i = 2; i < 10; i++ ) {
bitflags |= pieces[i];
}
if ( bitflags | dArch[x][y] ) {
plr[pnum]._peflag = 2;
}
}

Loading…
Cancel
Save