tmc/src/kinstone.c

89 lines
1.9 KiB
C

#include "global.h"
#include "room.h"
#include "subtask.h"
#include "common.h"
#include "flags.h"
void sub_08018B10(int param_1) {
int iVar1;
u32 index;
int iVar3;
int iVar4;
iVar4 = 0x1f0;
iVar3 = 0x1fc;
index = 0;
iVar1 = param_1 - 0x40;
for (; index < 4; iVar1++, index++) {
SetTileType(iVar4++, param_1 + index, 1);
SetTileType(iVar3++, iVar1, 2);
}
}
void sub_08018B50(int param_1) {
u32 i;
int iVar2;
u32 j;
int tilePosition;
struct_080FE320* ptr;
ptr = &gUnk_080FE320[param_1];
if ((ptr->entity_idx & 0x80) == 0) {
iVar2 = 0x200;
} else {
iVar2 = 0x219;
}
tilePosition = (ptr->x >> 4) & 0x3f;
tilePosition |= ((ptr->y >> 4) & 0x3f) << 6;
tilePosition -= 0x82;
for (i = 0; i < 5; tilePosition += 0x40, i++) {
for (j = 0; j < 5; j++) {
SetTileType(iVar2++, tilePosition + j, 1);
}
}
}
void sub_08018BB4(int param_1) {
u32 layer;
TileEntity tile;
struct_080FE320* ptr;
u32 position;
MemCopy(gUnk_080FEAC8 + param_1, &tile, sizeof(TileEntity));
ptr = &gUnk_080FE320[param_1];
tile.tilePos = (ptr->x >> 4 & 0x3f) | (((ptr->y) >> 4 & 0x3f) << 6);
sub_0804B3C4(&tile);
if (CheckLocalFlag(tile.localFlag) == 0) {
position = tile.tilePos;
if ((tile._6 & 1) == 0) {
layer = 1;
} else {
layer = 2;
}
SetTileType(0x73, position, layer);
}
}
void CreateMinishEntrance(u32 tilePos) {
u32 x, y;
u32 tileID = 0x185;
for (y = 0; y <= 3; y++) {
for (x = 0; x <= 4; x++) {
SetTileType(tileID++, tilePos + x, 1);
}
tilePos += 0x40;
}
}
void sub_08018C58(u32 tilePos) {
u32 i;
for (i = 0; i < 6; i += 2, tilePos += 0x40) {
SetTileType(0x260 + i, tilePos, 1);
SetTileType(0x261 + i, tilePos + 1, 1);
}
}