mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-23 09:14:55 -05:00
sub_8049BB0
This commit is contained in:
@@ -5,431 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8049BB0
|
||||
sub_8049BB0:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x44
|
||||
mov r10, r0
|
||||
str r1, [sp, 0x40]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
str r0, [sp, 0x8]
|
||||
str r0, [sp, 0xC]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x1
|
||||
mov r9, r0
|
||||
mov r0, r10
|
||||
mov r1, r9
|
||||
bl GetTile
|
||||
ldrh r1, [r0]
|
||||
movs r4, 0x3
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
add r6, sp, 0x18
|
||||
str r0, [sp, 0x18]
|
||||
mov r5, r10
|
||||
adds r5, 0x1
|
||||
adds r0, r5, 0
|
||||
mov r1, r9
|
||||
bl GetTile
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
str r0, [r6, 0x4]
|
||||
adds r0, r5, 0
|
||||
ldr r1, [sp, 0x40]
|
||||
bl GetTile
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
str r0, [r6, 0x8]
|
||||
ldr r0, [sp, 0x40]
|
||||
subs r0, 0x1
|
||||
mov r8, r0
|
||||
adds r0, r5, 0
|
||||
mov r1, r8
|
||||
bl GetTile
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
str r0, [r6, 0xC]
|
||||
mov r0, r10
|
||||
mov r1, r8
|
||||
bl GetTile
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
str r0, [r6, 0x10]
|
||||
subs r5, 0x2
|
||||
adds r0, r5, 0
|
||||
mov r1, r8
|
||||
bl GetTile
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
str r0, [r6, 0x14]
|
||||
adds r0, r5, 0
|
||||
ldr r1, [sp, 0x40]
|
||||
bl GetTile
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
str r0, [r6, 0x18]
|
||||
adds r0, r5, 0
|
||||
mov r1, r9
|
||||
bl GetTile
|
||||
ldrh r0, [r0]
|
||||
ands r4, r0
|
||||
str r4, [r6, 0x1C]
|
||||
ldr r1, [sp, 0x18]
|
||||
cmp r1, 0x1
|
||||
bne _08049C6A
|
||||
ldr r0, [sp]
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
_08049C6A:
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r0, 0x1
|
||||
bne _08049C78
|
||||
ldr r0, [sp]
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
_08049C78:
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0x1
|
||||
bne _08049C86
|
||||
ldr r0, [sp]
|
||||
movs r1, 0x10
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
_08049C86:
|
||||
ldr r0, [r6, 0x18]
|
||||
cmp r0, 0x1
|
||||
bne _08049C94
|
||||
ldr r0, [sp]
|
||||
movs r1, 0x40
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
_08049C94:
|
||||
ldr r2, [sp, 0x18]
|
||||
cmp r2, 0
|
||||
beq _08049CAE
|
||||
ldr r0, [r6, 0x4]
|
||||
cmp r0, 0x1
|
||||
bne _08049CAE
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08049CC8
|
||||
ldr r0, [sp]
|
||||
movs r1, 0x2
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
_08049CAE:
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08049CC8
|
||||
ldr r0, [r6, 0xC]
|
||||
cmp r0, 0x1
|
||||
bne _08049CC8
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08049CE2
|
||||
ldr r0, [sp]
|
||||
movs r1, 0x8
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
_08049CC8:
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08049CE2
|
||||
ldr r0, [r6, 0x14]
|
||||
cmp r0, 0x1
|
||||
bne _08049CE2
|
||||
ldr r0, [r6, 0x18]
|
||||
cmp r0, 0
|
||||
beq _08049CFA
|
||||
ldr r0, [sp]
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
_08049CE2:
|
||||
ldr r0, [r6, 0x18]
|
||||
cmp r0, 0
|
||||
beq _08049CFA
|
||||
ldr r0, [r6, 0x1C]
|
||||
cmp r0, 0x1
|
||||
bne _08049CFA
|
||||
cmp r2, 0
|
||||
beq _08049CFA
|
||||
ldr r0, [sp]
|
||||
movs r1, 0x80
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
_08049CFA:
|
||||
add r4, sp, 0x38
|
||||
movs r7, 0x1
|
||||
adds r2, r4, 0
|
||||
adds r1, r6, 0
|
||||
movs r5, 0
|
||||
movs r3, 0x7
|
||||
_08049D06:
|
||||
ldr r0, [r1]
|
||||
subs r0, 0x1
|
||||
cmp r0, 0x1
|
||||
bhi _08049D12
|
||||
strb r7, [r2]
|
||||
b _08049D14
|
||||
_08049D12:
|
||||
strb r5, [r2]
|
||||
_08049D14:
|
||||
adds r2, 0x1
|
||||
adds r1, 0x4
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _08049D06
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08049D2C
|
||||
ldr r0, [sp, 0x4]
|
||||
movs r1, 0x1
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
_08049D2C:
|
||||
ldrb r0, [r4, 0x2]
|
||||
cmp r0, 0
|
||||
beq _08049D3A
|
||||
ldr r0, [sp, 0x4]
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
_08049D3A:
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08049D48
|
||||
ldr r0, [sp, 0x4]
|
||||
movs r1, 0x10
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
_08049D48:
|
||||
ldrb r0, [r4, 0x6]
|
||||
cmp r0, 0
|
||||
beq _08049D56
|
||||
ldr r0, [sp, 0x4]
|
||||
movs r1, 0x40
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
_08049D56:
|
||||
ldr r2, [sp, 0x18]
|
||||
cmp r2, 0
|
||||
beq _08049D70
|
||||
ldrb r0, [r4, 0x1]
|
||||
cmp r0, 0
|
||||
beq _08049D70
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08049D8A
|
||||
ldr r0, [sp, 0x4]
|
||||
movs r1, 0x2
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
_08049D70:
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08049D8A
|
||||
ldrb r0, [r4, 0x3]
|
||||
cmp r0, 0
|
||||
beq _08049D8A
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08049DA4
|
||||
ldr r0, [sp, 0x4]
|
||||
movs r1, 0x8
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
_08049D8A:
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08049DA4
|
||||
ldrb r0, [r4, 0x5]
|
||||
cmp r0, 0
|
||||
beq _08049DA4
|
||||
ldr r0, [r6, 0x18]
|
||||
cmp r0, 0
|
||||
beq _08049DBC
|
||||
ldr r0, [sp, 0x4]
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
_08049DA4:
|
||||
ldr r0, [r6, 0x18]
|
||||
cmp r0, 0
|
||||
beq _08049DBC
|
||||
ldrb r0, [r4, 0x7]
|
||||
cmp r0, 0
|
||||
beq _08049DBC
|
||||
cmp r2, 0
|
||||
beq _08049DC8
|
||||
ldr r0, [sp, 0x4]
|
||||
movs r1, 0x80
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
_08049DBC:
|
||||
cmp r2, 0
|
||||
beq _08049DC8
|
||||
ldr r0, [sp, 0x8]
|
||||
movs r1, 0x1
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
_08049DC8:
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08049DD6
|
||||
ldr r0, [sp, 0x8]
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
_08049DD6:
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08049DE4
|
||||
ldr r0, [sp, 0x8]
|
||||
movs r1, 0x10
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
_08049DE4:
|
||||
ldr r0, [r6, 0x18]
|
||||
cmp r0, 0
|
||||
beq _08049DF2
|
||||
ldr r0, [sp, 0x8]
|
||||
movs r1, 0x40
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
_08049DF2:
|
||||
cmp r2, 0
|
||||
beq _08049E0A
|
||||
ldr r0, [r6, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08049E0A
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08049E24
|
||||
ldr r0, [sp, 0x8]
|
||||
movs r1, 0x2
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
_08049E0A:
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r0, 0
|
||||
beq _08049E24
|
||||
ldr r0, [r6, 0xC]
|
||||
cmp r0, 0
|
||||
beq _08049E24
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08049E3E
|
||||
ldr r0, [sp, 0x8]
|
||||
movs r1, 0x8
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
_08049E24:
|
||||
ldr r0, [r6, 0x10]
|
||||
cmp r0, 0
|
||||
beq _08049E3E
|
||||
ldr r0, [r6, 0x14]
|
||||
cmp r0, 0
|
||||
beq _08049E3E
|
||||
ldr r0, [r6, 0x18]
|
||||
cmp r0, 0
|
||||
beq _08049E56
|
||||
ldr r0, [sp, 0x8]
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
_08049E3E:
|
||||
ldr r0, [r6, 0x18]
|
||||
cmp r0, 0
|
||||
beq _08049E56
|
||||
ldr r0, [r6, 0x1C]
|
||||
cmp r0, 0
|
||||
beq _08049E56
|
||||
cmp r2, 0
|
||||
beq _08049E56
|
||||
ldr r0, [sp, 0x8]
|
||||
movs r1, 0x80
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
_08049E56:
|
||||
movs r0, 0xFF
|
||||
str r0, [sp, 0xC]
|
||||
mov r0, r10
|
||||
cmp r0, 0x1
|
||||
bgt _08049E64
|
||||
movs r0, 0x1F
|
||||
str r0, [sp, 0xC]
|
||||
_08049E64:
|
||||
ldr r0, [sp, 0x40]
|
||||
cmp r0, 0x1
|
||||
bgt _08049E74
|
||||
ldr r0, [sp, 0xC]
|
||||
movs r1, 0x39
|
||||
negs r1, r1
|
||||
ands r0, r1
|
||||
str r0, [sp, 0xC]
|
||||
_08049E74:
|
||||
mov r0, r10
|
||||
cmp r0, 0x35
|
||||
ble _08049E84
|
||||
ldr r0, [sp, 0xC]
|
||||
movs r1, 0xF
|
||||
negs r1, r1
|
||||
ands r0, r1
|
||||
str r0, [sp, 0xC]
|
||||
_08049E84:
|
||||
ldr r0, [sp, 0x40]
|
||||
cmp r0, 0x1D
|
||||
ble _08049E94
|
||||
ldr r0, [sp, 0xC]
|
||||
movs r1, 0x84
|
||||
negs r1, r1
|
||||
ands r0, r1
|
||||
str r0, [sp, 0xC]
|
||||
_08049E94:
|
||||
mov r0, r10
|
||||
ldr r1, [sp, 0x40]
|
||||
bl GetTileSafe
|
||||
ldr r1, [sp]
|
||||
strb r1, [r0, 0xA]
|
||||
mov r0, r10
|
||||
ldr r1, [sp, 0x40]
|
||||
bl GetTileSafe
|
||||
ldr r1, [sp, 0x4]
|
||||
strb r1, [r0, 0xB]
|
||||
mov r0, r10
|
||||
ldr r1, [sp, 0x40]
|
||||
bl GetTileSafe
|
||||
ldr r1, [sp, 0x8]
|
||||
strb r1, [r0, 0xC]
|
||||
mov r0, r10
|
||||
ldr r1, [sp, 0x40]
|
||||
bl GetTileSafe
|
||||
ldr r1, [sp, 0xC]
|
||||
strb r1, [r0, 0xD]
|
||||
add sp, 0x44
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8049BB0
|
||||
|
||||
thumb_func_start sub_8049ED4
|
||||
sub_8049ED4:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -57,7 +57,7 @@ void sub_80495E4(void)
|
||||
{
|
||||
s32 YCoord;
|
||||
s32 XCoord;
|
||||
|
||||
|
||||
for(YCoord = 0; YCoord < DUNGEON_MAX_SIZE_Y; YCoord++)
|
||||
{
|
||||
for(XCoord = 0; XCoord < DUNGEON_MAX_SIZE_X; XCoord++)
|
||||
@@ -75,7 +75,7 @@ void LoadDungeonTilesetAssets(void)
|
||||
OpenedFile *file;
|
||||
OpenedFile *file_1;
|
||||
u8 fileName [12];
|
||||
|
||||
|
||||
sprintf(fileName,gUnknown_80F6A04,gUnknown_8108EC0[gDungeon->tileset]); // b%02dfon
|
||||
file = OpenFileAndGetFileDataPtr(fileName,&gDungeonFileArchive);
|
||||
DecompressATGlobalFile((u32 *)0x06008000,0,file);
|
||||
@@ -142,7 +142,7 @@ void sub_8049884(void)
|
||||
{
|
||||
s32 XCoord;
|
||||
s32 YCoord;
|
||||
|
||||
|
||||
for(YCoord = 0; YCoord < DUNGEON_MAX_SIZE_Y; YCoord++)
|
||||
{
|
||||
for(XCoord = 0; XCoord < DUNGEON_MAX_SIZE_X; XCoord++) {
|
||||
@@ -165,7 +165,7 @@ void sub_80498A8(int x,int y)
|
||||
u16 sp_0x20; // sp 0x20
|
||||
int r4;
|
||||
s32 r7; // r7
|
||||
|
||||
|
||||
if (x < 0) {
|
||||
return;
|
||||
}
|
||||
@@ -325,7 +325,7 @@ void sub_8049B8C(void)
|
||||
{
|
||||
s32 XCoord;
|
||||
s32 YCoord;
|
||||
|
||||
|
||||
for(YCoord = 0; YCoord < DUNGEON_MAX_SIZE_Y; YCoord++)
|
||||
{
|
||||
for(XCoord = 0; XCoord < DUNGEON_MAX_SIZE_X; XCoord++) {
|
||||
@@ -333,3 +333,103 @@ void sub_8049B8C(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8049BB0(s32 x, s32 y)
|
||||
{
|
||||
s32 terrainFlags;
|
||||
s32 i;
|
||||
s32 flags[6];
|
||||
s32 var_4C[8];
|
||||
bool8 var_2C[8];
|
||||
|
||||
flags[0] = 0;
|
||||
flags[1] = 0;
|
||||
flags[2] = 0;
|
||||
flags[3] = 0;
|
||||
|
||||
terrainFlags = GetTile(x, y+1)->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
var_4C[0] = terrainFlags;
|
||||
var_4C[1] = GetTile(x+1, y+1)->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
var_4C[2] = GetTile(x+1, y)->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
var_4C[3] = GetTile(x+1, y-1)->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
var_4C[4] = GetTile(x, y-1)->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
var_4C[5] = GetTile(x-1, y-1)->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
var_4C[6] = GetTile(x-1, y)->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
var_4C[7] = GetTile(x-1, y+1)->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
|
||||
if (var_4C[0] == TERRAIN_TYPE_NORMAL)
|
||||
flags[CROSSABLE_TERRAIN_REGULAR] |= 1;
|
||||
if (var_4C[2] == TERRAIN_TYPE_NORMAL)
|
||||
flags[CROSSABLE_TERRAIN_REGULAR] |= 4;
|
||||
if (var_4C[4] == TERRAIN_TYPE_NORMAL)
|
||||
flags[CROSSABLE_TERRAIN_REGULAR] |= 0x10;
|
||||
if (var_4C[6] == TERRAIN_TYPE_NORMAL)
|
||||
flags[CROSSABLE_TERRAIN_REGULAR] |= 0x40;
|
||||
|
||||
if (var_4C[0] != 0 && var_4C[1] == TERRAIN_TYPE_NORMAL && var_4C[2] != 0)
|
||||
flags[CROSSABLE_TERRAIN_REGULAR] |= 2;
|
||||
if (var_4C[2] != 0 && var_4C[3] == TERRAIN_TYPE_NORMAL && var_4C[4] != 0)
|
||||
flags[CROSSABLE_TERRAIN_REGULAR] |= 8;
|
||||
if (var_4C[4] != 0 && var_4C[5] == TERRAIN_TYPE_NORMAL && var_4C[6] != 0)
|
||||
flags[CROSSABLE_TERRAIN_REGULAR] |= 0x20;
|
||||
if (var_4C[6] != 0 && var_4C[7] == TERRAIN_TYPE_NORMAL && var_4C[0] != 0)
|
||||
flags[CROSSABLE_TERRAIN_REGULAR] |= 0x80;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (var_4C[i] == TERRAIN_TYPE_NORMAL || var_4C[i] == TERRAIN_TYPE_SECONDARY)
|
||||
var_2C[i] = TRUE;
|
||||
else
|
||||
var_2C[i] = FALSE;
|
||||
}
|
||||
|
||||
if (var_2C[0])
|
||||
flags[CROSSABLE_TERRAIN_LIQUID] |= 1;
|
||||
if (var_2C[2])
|
||||
flags[CROSSABLE_TERRAIN_LIQUID] |= 4;
|
||||
if (var_2C[4])
|
||||
flags[CROSSABLE_TERRAIN_LIQUID] |= 0x10;
|
||||
if (var_2C[6])
|
||||
flags[CROSSABLE_TERRAIN_LIQUID] |= 0x40;
|
||||
|
||||
if (var_4C[0] != 0 && var_2C[1] && var_4C[2] != 0)
|
||||
flags[CROSSABLE_TERRAIN_LIQUID] |= 2;
|
||||
if (var_4C[2] != 0 && var_2C[3] && var_4C[4] != 0)
|
||||
flags[CROSSABLE_TERRAIN_LIQUID] |= 8;
|
||||
if (var_4C[4] != 0 && var_2C[5] && var_4C[6] != 0)
|
||||
flags[CROSSABLE_TERRAIN_LIQUID] |= 0x20;
|
||||
if (var_4C[6] != 0 && var_2C[7] && var_4C[0] != 0)
|
||||
flags[CROSSABLE_TERRAIN_LIQUID] |= 0x80;
|
||||
|
||||
if (var_4C[0] != 0)
|
||||
flags[2] |= 1;
|
||||
if (var_4C[2] != 0)
|
||||
flags[2] |= 4;
|
||||
if (var_4C[4] != 0)
|
||||
flags[2] |= 0x10;
|
||||
if (var_4C[6] != 0)
|
||||
flags[2] |= 0x40;
|
||||
|
||||
if (var_4C[0] != 0 && var_4C[1] != 0 && var_4C[2] != 0)
|
||||
flags[CROSSABLE_TERRAIN_CREVICE] |= 2;
|
||||
if (var_4C[2] != 0 && var_4C[3] != 0 && var_4C[4] != 0)
|
||||
flags[CROSSABLE_TERRAIN_CREVICE] |= 8;
|
||||
if (var_4C[4] != 0 && var_4C[5] != 0 && var_4C[6] != 0)
|
||||
flags[CROSSABLE_TERRAIN_CREVICE] |= 0x20;
|
||||
if (var_4C[6] != 0 && var_4C[7] != 0 && var_4C[0] != 0)
|
||||
flags[CROSSABLE_TERRAIN_CREVICE] |= 0x80;
|
||||
|
||||
flags[3] = 0xFF;
|
||||
if (x <= 1)
|
||||
flags[CROSSABLE_TERRAIN_WALL] = 0x1F;
|
||||
if (y <= 1)
|
||||
flags[CROSSABLE_TERRAIN_WALL] &= ~(0x8 | 0x10 | 0x20);
|
||||
if (x > 53)
|
||||
flags[CROSSABLE_TERRAIN_WALL] &= ~(0x2 | 0x4 | 0x8);
|
||||
if (y > 29)
|
||||
flags[CROSSABLE_TERRAIN_WALL] &= ~(0x80 | 0x1 | 0x2);
|
||||
|
||||
GetTileSafe(x, y)->walkableNeighborFlags[CROSSABLE_TERRAIN_REGULAR] = flags[CROSSABLE_TERRAIN_REGULAR];
|
||||
GetTileSafe(x, y)->walkableNeighborFlags[CROSSABLE_TERRAIN_LIQUID] = flags[CROSSABLE_TERRAIN_LIQUID];
|
||||
GetTileSafe(x, y)->walkableNeighborFlags[CROSSABLE_TERRAIN_CREVICE] = flags[CROSSABLE_TERRAIN_CREVICE];
|
||||
GetTileSafe(x, y)->walkableNeighborFlags[CROSSABLE_TERRAIN_WALL] = flags[CROSSABLE_TERRAIN_WALL];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user