Decompile roomSetLightsOn

This commit is contained in:
Ryan Dwyer 2020-09-01 22:56:23 +10:00
parent 3ec3456872
commit e37c778880
11 changed files with 153 additions and 164 deletions

View File

@ -2390,33 +2390,33 @@ u8 func100b_lightswitch[] = {
// Turning lights off
set_stage_flag(STAGEFLAG_LIGHTS_OFF)
set_lights_state(0x0044, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0044, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
reloop(0x04)
// Turning lights on
label(0x06)
unset_stage_flag(STAGEFLAG_LIGHTS_OFF)
set_lights_state(0x0044, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0044, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
endloop(0x04)
endlist

View File

@ -2025,17 +2025,17 @@ u8 func040d_cass[] = {
endloop(0x2a)
label(0x20)
set_lights_state(0x0044, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0044, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_stage_flag(STAGEFLAG_TOP_LIGHTS_OFF)
set_stage_flag(STAGEFLAG_TOP_GUARDS_ATTACKING)
walk_to_pad(0x000f)
@ -2129,33 +2129,33 @@ u8 func100a_lightswitch[] = {
label(0x20)
play_sound(0x00ba, -1)
if_stage_flag_eq(STAGEFLAG_TOP_LIGHTS_OFF, TRUE, /*goto*/ 0x00)
set_lights_state(0x0044, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_7, 0x00, 0x00, 0x00)
set_lights_state(0x0044, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_TURNOFF, 0x00, 0x00, 0x00)
set_stage_flag(STAGEFLAG_TOP_LIGHTS_OFF)
reloop(0x1f)
label(0x00)
unset_stage_flag(STAGEFLAG_TOP_LIGHTS_OFF)
set_lights_state(0x0044, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_6, 0x00, 0x00, 0x00)
set_lights_state(0x0044, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x0039, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003c, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003d, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003e, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003b, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x0042, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003f, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x003a, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x0041, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
set_lights_state(0x0040, LIGHTOP_TURNON, 0x00, 0x00, 0x00)
endloop(0x1f)
endlist

View File

@ -6175,11 +6175,11 @@ bool aiSetLights(void)
if (roomnum >= 0) {
switch (cmd[4]) {
case LIGHTOP_7:
func0f002b58(roomnum, false);
case LIGHTOP_TURNOFF:
roomSetLightsOn(roomnum, false);
break;
case LIGHTOP_6:
func0f002b58(roomnum, true);
case LIGHTOP_TURNON:
roomSetLightsOn(roomnum, true);
break;
default:
roomSetLighting(roomnum, cmd[4], cmd[5], cmd[6], cmd[7]);

View File

@ -117,8 +117,8 @@ glabel func0f00097c
/* f000994: 000f7880 */ sll $t7,$t7,0x2
/* f000998: 01cfc021 */ addu $t8,$t6,$t7
/* f00099c: 9719000a */ lhu $t9,0xa($t8)
/* f0009a0: 3c0a800a */ lui $t2,%hi(var800a4cd8)
/* f0009a4: 8d4a4cd8 */ lw $t2,%lo(var800a4cd8)($t2)
/* f0009a0: 3c0a800a */ lui $t2,%hi(g_LightsFileData)
/* f0009a4: 8d4a4cd8 */ lw $t2,%lo(g_LightsFileData)($t2)
/* f0009a8: 03254021 */ addu $t0,$t9,$a1
/* f0009ac: 00084900 */ sll $t1,$t0,0x4
/* f0009b0: 01284821 */ addu $t1,$t1,$t0
@ -455,9 +455,9 @@ glabel func0f000dfc
/* f000e14: 000f7880 */ sll $t7,$t7,0x2
/* f000e18: 01cfc021 */ addu $t8,$t6,$t7
/* f000e1c: 9719000a */ lhu $t9,0xa($t8)
/* f000e20: 3c09800a */ lui $t1,%hi(var800a4cd8)
/* f000e20: 3c09800a */ lui $t1,%hi(g_LightsFileData)
/* f000e24: 44800000 */ mtc1 $zero,$f0
/* f000e28: 8d294cd8 */ lw $t1,%lo(var800a4cd8)($t1)
/* f000e28: 8d294cd8 */ lw $t1,%lo(g_LightsFileData)($t1)
/* f000e2c: 00194100 */ sll $t0,$t9,0x4
/* f000e30: 00055100 */ sll $t2,$a1,0x4
/* f000e34: 01194021 */ addu $t0,$t0,$t9
@ -616,8 +616,8 @@ glabel func0f001000
/* f001040: 000f7880 */ sll $t7,$t7,0x2
/* f001044: 01cfc021 */ addu $t8,$t6,$t7
/* f001048: 9719000a */ lhu $t9,0xa($t8)
/* f00104c: 3c09800a */ lui $t1,%hi(var800a4cd8)
/* f001050: 8d294cd8 */ lw $t1,%lo(var800a4cd8)($t1)
/* f00104c: 3c09800a */ lui $t1,%hi(g_LightsFileData)
/* f001050: 8d294cd8 */ lw $t1,%lo(g_LightsFileData)($t1)
/* f001054: 00194100 */ sll $t0,$t9,0x4
/* f001058: 00055100 */ sll $t2,$a1,0x4
/* f00105c: 01194021 */ addu $t0,$t0,$t9
@ -1048,9 +1048,9 @@ glabel func0f0013c8
/* f001640: 01e7c021 */ addu $t8,$t7,$a3
/* f001644: 9719000a */ lhu $t9,0xa($t8)
/* f001648: 81180008 */ lb $t8,0x8($t0)
/* f00164c: 3c0f800a */ lui $t7,%hi(var800a4cd8)
/* f00164c: 3c0f800a */ lui $t7,%hi(g_LightsFileData)
/* f001650: 00197100 */ sll $t6,$t9,0x4
/* f001654: 8def4cd8 */ lw $t7,%lo(var800a4cd8)($t7)
/* f001654: 8def4cd8 */ lw $t7,%lo(g_LightsFileData)($t7)
/* f001658: 01d97021 */ addu $t6,$t6,$t9
/* f00165c: 000e7040 */ sll $t6,$t6,0x1
/* f001660: 1b000030 */ blez $t8,.L0f001724
@ -1200,8 +1200,8 @@ glabel func0f001734
/* f00186c: 46009083 */ div.s $f2,$f18,$f0
/* f001870: c7a80094 */ lwc1 $f8,0x94($sp)
/* f001874: 8fc90000 */ lw $t1,0x0($s8)
/* f001878: 3c0c800a */ lui $t4,%hi(var800a4cd8)
/* f00187c: 8d8c4cd8 */ lw $t4,%lo(var800a4cd8)($t4)
/* f001878: 3c0c800a */ lui $t4,%hi(g_LightsFileData)
/* f00187c: 8d8c4cd8 */ lw $t4,%lo(g_LightsFileData)($t4)
/* f001880: 01371021 */ addu $v0,$t1,$s7
/* f001884: 00009825 */ or $s3,$zero,$zero
/* f001888: 27b6008c */ addiu $s6,$sp,0x8c
@ -1352,9 +1352,9 @@ glabel roomSetFaultyLights
/* f001aa4: 01d31021 */ addu $v0,$t6,$s3
/* f001aa8: 944f000a */ lhu $t7,0xa($v0)
/* f001aac: 80430008 */ lb $v1,0x8($v0)
/* f001ab0: 3c19800a */ lui $t9,%hi(var800a4cd8)
/* f001ab0: 3c19800a */ lui $t9,%hi(g_LightsFileData)
/* f001ab4: 000fc100 */ sll $t8,$t7,0x4
/* f001ab8: 8f394cd8 */ lw $t9,%lo(var800a4cd8)($t9)
/* f001ab8: 8f394cd8 */ lw $t9,%lo(g_LightsFileData)($t9)
/* f001abc: 030fc021 */ addu $t8,$t8,$t7
/* f001ac0: 0018c040 */ sll $t8,$t8,0x1
/* f001ac4: 00a0a825 */ or $s5,$a1,$zero
@ -2533,66 +2533,29 @@ glabel func0f002a98
/* f002b54: 27bd0028 */ addiu $sp,$sp,0x28
);
GLOBAL_ASM(
glabel func0f002b58
/* f002b58: 3c08800a */ lui $t0,%hi(g_Rooms)
/* f002b5c: 000418c0 */ sll $v1,$a0,0x3
/* f002b60: 25084928 */ addiu $t0,$t0,%lo(g_Rooms)
/* f002b64: 00641821 */ addu $v1,$v1,$a0
/* f002b68: 8d0e0000 */ lw $t6,0x0($t0)
/* f002b6c: 00031880 */ sll $v1,$v1,0x2
/* f002b70: 00641823 */ subu $v1,$v1,$a0
/* f002b74: 00031880 */ sll $v1,$v1,0x2
/* f002b78: 01c33021 */ addu $a2,$t6,$v1
/* f002b7c: 94cf000a */ lhu $t7,0xa($a2)
/* f002b80: 80c70008 */ lb $a3,0x8($a2)
/* f002b84: 3c19800a */ lui $t9,%hi(var800a4cd8)
/* f002b88: 000fc100 */ sll $t8,$t7,0x4
/* f002b8c: 8f394cd8 */ lw $t9,%lo(var800a4cd8)($t9)
/* f002b90: 030fc021 */ addu $t8,$t8,$t7
/* f002b94: 0018c040 */ sll $t8,$t8,0x1
/* f002b98: 10e00014 */ beqz $a3,.L0f002bec
/* f002b9c: 03191021 */ addu $v0,$t8,$t9
/* f002ba0: 18e00012 */ blez $a3,.L0f002bec
/* f002ba4: 00002025 */ or $a0,$zero,$zero
.L0f002ba8:
/* f002ba8: 94490004 */ lhu $t1,0x4($v0)
/* f002bac: 24840001 */ addiu $a0,$a0,0x1
/* f002bb0: 00095e40 */ sll $t3,$t1,0x19
/* f002bb4: 0563000b */ bgezl $t3,.L0f002be4
/* f002bb8: 0087082a */ slt $at,$a0,$a3
/* f002bbc: 904f0005 */ lbu $t7,0x5($v0)
/* f002bc0: 00056940 */ sll $t5,$a1,0x5
/* f002bc4: 31ae0020 */ andi $t6,$t5,0x20
/* f002bc8: 31f8ffdf */ andi $t8,$t7,0xffdf
/* f002bcc: 01d8c825 */ or $t9,$t6,$t8
/* f002bd0: a0590005 */ sb $t9,0x5($v0)
/* f002bd4: 8d090000 */ lw $t1,0x0($t0)
/* f002bd8: 01233021 */ addu $a2,$t1,$v1
/* f002bdc: 80c70008 */ lb $a3,0x8($a2)
/* f002be0: 0087082a */ slt $at,$a0,$a3
.L0f002be4:
/* f002be4: 1420fff0 */ bnez $at,.L0f002ba8
/* f002be8: 24420022 */ addiu $v0,$v0,0x22
.L0f002bec:
/* f002bec: 50a00006 */ beqzl $a1,.L0f002c08
/* f002bf0: 94cc0000 */ lhu $t4,0x0($a2)
/* f002bf4: 94ca0000 */ lhu $t2,0x0($a2)
/* f002bf8: 314bdfff */ andi $t3,$t2,0xdfff
/* f002bfc: 10000004 */ b .L0f002c10
/* f002c00: a4cb0000 */ sh $t3,0x0($a2)
/* f002c04: 94cc0000 */ lhu $t4,0x0($a2)
.L0f002c08:
/* f002c08: 358d2000 */ ori $t5,$t4,0x2000
/* f002c0c: a4cd0000 */ sh $t5,0x0($a2)
.L0f002c10:
/* f002c10: 8d0f0000 */ lw $t7,0x0($t0)
/* f002c14: 01e33021 */ addu $a2,$t7,$v1
/* f002c18: 94ce0000 */ lhu $t6,0x0($a2)
/* f002c1c: 35d80100 */ ori $t8,$t6,0x100
/* f002c20: 03e00008 */ jr $ra
/* f002c24: a4d80000 */ sh $t8,0x0($a2)
);
void roomSetLightsOn(s32 roomnum, s32 enable)
{
struct light *light = (struct light *)&g_LightsFileData[g_Rooms[roomnum].lightindex * 0x22];
s32 i;
if (g_Rooms[roomnum].numlights) {
for (i = 0; i < g_Rooms[roomnum].numlights; i++) {
if (light->healthy) {
light->on = enable;
}
light++;
}
}
if (enable) {
g_Rooms[roomnum].flags &= ~ROOMFLAG_LIGHTSOFF;
} else {
g_Rooms[roomnum].flags |= ROOMFLAG_LIGHTSOFF;
}
g_Rooms[roomnum].flags |= ROOMFLAG_0100;
}
void roomSetLighting(s32 roomnum, s32 operation, u8 arg2, u8 arg3, u8 arg4)
{
@ -2642,8 +2605,8 @@ glabel func0f002ef8
/* f002f20: afa500dc */ sw $a1,0xdc($sp)
/* f002f24: 01d8c821 */ addu $t9,$t6,$t8
/* f002f28: 972a000a */ lhu $t2,0xa($t9)
/* f002f2c: 3c0f800a */ lui $t7,%hi(var800a4cd8)
/* f002f30: 8def4cd8 */ lw $t7,%lo(var800a4cd8)($t7)
/* f002f2c: 3c0f800a */ lui $t7,%hi(g_LightsFileData)
/* f002f30: 8def4cd8 */ lw $t7,%lo(g_LightsFileData)($t7)
/* f002f34: 01456021 */ addu $t4,$t2,$a1
/* f002f38: 000c6900 */ sll $t5,$t4,0x4
/* f002f3c: 01ac6821 */ addu $t5,$t5,$t4
@ -3010,11 +2973,11 @@ glabel func0f003444
/* f003480: 0000a025 */ or $s4,$zero,$zero
/* f003484: 3c013f00 */ lui $at,0x3f00
/* f003488: 3c02800a */ lui $v0,%hi(g_Rooms)
/* f00348c: 3c16800a */ lui $s6,%hi(var800a4cd8)
/* f00348c: 3c16800a */ lui $s6,%hi(g_LightsFileData)
/* f003490: 3c12800a */ lui $s2,%hi(g_Rooms)
/* f003494: 4481a000 */ mtc1 $at,$f20
/* f003498: 26524928 */ addiu $s2,$s2,%lo(g_Rooms)
/* f00349c: 26d64cd8 */ addiu $s6,$s6,%lo(var800a4cd8)
/* f00349c: 26d64cd8 */ addiu $s6,$s6,%lo(g_LightsFileData)
/* f0034a0: 8c424928 */ lw $v0,%lo(g_Rooms)($v0)
/* f0034a4: 00009825 */ or $s3,$zero,$zero
/* f0034a8: 24150022 */ addiu $s5,$zero,0x22
@ -3114,11 +3077,11 @@ glabel func0f0035c0
/* f0035f8: 19c00040 */ blez $t6,.L0f0036fc
/* f0035fc: 0000a025 */ or $s4,$zero,$zero
/* f003600: 3c02800a */ lui $v0,%hi(g_Rooms)
/* f003604: 3c16800a */ lui $s6,%hi(var800a4cd8)
/* f003604: 3c16800a */ lui $s6,%hi(g_LightsFileData)
/* f003608: 3c12800a */ lui $s2,%hi(g_Rooms)
/* f00360c: 4480a000 */ mtc1 $zero,$f20
/* f003610: 26524928 */ addiu $s2,$s2,%lo(g_Rooms)
/* f003614: 26d64cd8 */ addiu $s6,$s6,%lo(var800a4cd8)
/* f003614: 26d64cd8 */ addiu $s6,$s6,%lo(g_LightsFileData)
/* f003618: 8c424928 */ lw $v0,%lo(g_Rooms)($v0)
/* f00361c: 00009825 */ or $s3,$zero,$zero
/* f003620: 24150022 */ addiu $s5,$zero,0x22
@ -3555,8 +3518,8 @@ glabel var7f1a7dd4
/* f003c10: 10800032 */ beqz $a0,.L0f003cdc
/* f003c14: 00001825 */ or $v1,$zero,$zero
/* f003c18: 9609000a */ lhu $t1,0xa($s0)
/* f003c1c: 3c0b800a */ lui $t3,%hi(var800a4cd8)
/* f003c20: 8d6b4cd8 */ lw $t3,%lo(var800a4cd8)($t3)
/* f003c1c: 3c0b800a */ lui $t3,%hi(g_LightsFileData)
/* f003c20: 8d6b4cd8 */ lw $t3,%lo(g_LightsFileData)($t3)
/* f003c24: 00095100 */ sll $t2,$t1,0x4
/* f003c28: 01495021 */ addu $t2,$t2,$t1
/* f003c2c: 000a5040 */ sll $t2,$t2,0x1
@ -3628,14 +3591,14 @@ glabel var7f1a7dd4
.L0f003d14:
/* f003d14: c610005c */ lwc1 $f16,0x5c($s0)
.L0f003d18:
/* f003d18: 3c0f800a */ lui $t7,%hi(var800a4cd8)
/* f003d18: 3c0f800a */ lui $t7,%hi(g_LightsFileData)
/* f003d1c: 46100002 */ mul.s $f0,$f0,$f16
/* f003d20: 4600028d */ trunc.w.s $f10,$f0
/* f003d24: 440b5000 */ mfc1 $t3,$f10
/* f003d28: 00000000 */ nop
/* f003d2c: a60b0050 */ sh $t3,0x50($s0)
/* f003d30: 8e6c0000 */ lw $t4,0x0($s3)
/* f003d34: 8def4cd8 */ lw $t7,%lo(var800a4cd8)($t7)
/* f003d34: 8def4cd8 */ lw $t7,%lo(g_LightsFileData)($t7)
/* f003d38: 01928021 */ addu $s0,$t4,$s2
/* f003d3c: 960d000a */ lhu $t5,0xa($s0)
/* f003d40: 82040008 */ lb $a0,0x8($s0)

View File

@ -285,11 +285,11 @@ glabel func0f13c780
/* f13c818: 8fbf006c */ lw $ra,0x6c($sp)
/* f13c81c: 84660012 */ lh $a2,0x12($v1)
/* f13c820: 27b00138 */ addiu $s0,$sp,0x138
/* f13c824: 3c0a800a */ lui $t2,%hi(var800a4cd8)
/* f13c824: 3c0a800a */ lui $t2,%hi(g_LightsFileData)
/* f13c828: 10c002d4 */ beqz $a2,.L0f13d37c
/* f13c82c: 3c0d800a */ lui $t5,%hi(var800a41a0)
/* f13c830: 84620010 */ lh $v0,0x10($v1)
/* f13c834: 8d4a4cd8 */ lw $t2,%lo(var800a4cd8)($t2)
/* f13c834: 8d4a4cd8 */ lw $t2,%lo(g_LightsFileData)($t2)
/* f13c838: 8dad41a0 */ lw $t5,%lo(var800a41a0)($t5)
/* f13c83c: 00024900 */ sll $t1,$v0,0x4
/* f13c840: 01224821 */ addu $t1,$t1,$v0
@ -1282,11 +1282,11 @@ glabel func0f13d568
/* f13d6a8: afa50140 */ sw $a1,0x140($sp)
/* f13d6ac: 94ad0000 */ lhu $t5,0x0($a1)
/* f13d6b0: 8fac0164 */ lw $t4,0x164($sp)
/* f13d6b4: 3c0f800a */ lui $t7,%hi(var800a4cd8)
/* f13d6b4: 3c0f800a */ lui $t7,%hi(g_LightsFileData)
/* f13d6b8: 24010022 */ addiu $at,$zero,0x22
/* f13d6bc: 158d026d */ bne $t4,$t5,.L0f13e074
/* f13d6c0: 00005025 */ or $t2,$zero,$zero
/* f13d6c4: 8def4cd8 */ lw $t7,%lo(var800a4cd8)($t7)
/* f13d6c4: 8def4cd8 */ lw $t7,%lo(g_LightsFileData)($t7)
/* f13d6c8: 3c0c800a */ lui $t4,%hi(var800a41a0)
/* f13d6cc: 8d8c41a0 */ lw $t4,%lo(var800a41a0)($t4)
/* f13d6d0: 00af8823 */ subu $s1,$a1,$t7

View File

@ -4089,15 +4089,15 @@ glabel func0f15b534
/* f15b8a8: ac2e4cd4 */ sw $t6,%lo(g_PortalCommands)($at)
.L0f15b8ac:
/* f15b8ac: 8ca20010 */ lw $v0,0x10($a1)
/* f15b8b0: 3c01800a */ lui $at,%hi(var800a4cd8)
/* f15b8b0: 3c01800a */ lui $at,%hi(g_LightsFileData)
/* f15b8b4: 14400004 */ bnez $v0,.L0f15b8c8
/* f15b8b8: 00447821 */ addu $t7,$v0,$a0
/* f15b8bc: 3c01800a */ lui $at,%hi(var800a4cd8)
/* f15b8bc: 3c01800a */ lui $at,%hi(g_LightsFileData)
/* f15b8c0: 10000003 */ b .L0f15b8d0
/* f15b8c4: ac204cd8 */ sw $zero,%lo(var800a4cd8)($at)
/* f15b8c4: ac204cd8 */ sw $zero,%lo(g_LightsFileData)($at)
.L0f15b8c8:
/* f15b8c8: 01e7c021 */ addu $t8,$t7,$a3
/* f15b8cc: ac384cd8 */ sw $t8,%lo(var800a4cd8)($at)
/* f15b8cc: ac384cd8 */ sw $t8,%lo(g_LightsFileData)($at)
.L0f15b8d0:
/* f15b8d0: 8ca20014 */ lw $v0,0x14($a1)
/* f15b8d4: 3c01800a */ lui $at,%hi(var800a4cdc)
@ -4349,15 +4349,15 @@ glabel func0f15b534
/* f15b66c: ac2e4cd4 */ sw $t6,%lo(g_PortalCommands)($at)
.L0f15b670:
/* f15b670: 8ca20010 */ lw $v0,0x10($a1)
/* f15b674: 3c01800a */ lui $at,%hi(var800a4cd8)
/* f15b674: 3c01800a */ lui $at,%hi(g_LightsFileData)
/* f15b678: 14400004 */ bnez $v0,.L0f15b68c
/* f15b67c: 00447821 */ addu $t7,$v0,$a0
/* f15b680: 3c01800a */ lui $at,%hi(var800a4cd8)
/* f15b680: 3c01800a */ lui $at,%hi(g_LightsFileData)
/* f15b684: 10000003 */ b .L0f15b694
/* f15b688: ac204cd8 */ sw $zero,%lo(var800a4cd8)($at)
/* f15b688: ac204cd8 */ sw $zero,%lo(g_LightsFileData)($at)
.L0f15b68c:
/* f15b68c: 01e7c021 */ addu $t8,$t7,$a3
/* f15b690: ac384cd8 */ sw $t8,%lo(var800a4cd8)($at)
/* f15b690: ac384cd8 */ sw $t8,%lo(g_LightsFileData)($at)
.L0f15b694:
/* f15b694: 8ca20014 */ lw $v0,0x14($a1)
/* f15b698: 3c01800a */ lui $at,%hi(var800a4cdc)

View File

@ -16403,7 +16403,7 @@ struct portal *g_Portals = NULL;
u32 var800a4ccc = 0;
u8 *var800a4cd0 = NULL;
struct portalcmd *g_PortalCommands = NULL;
u32 var800a4cd8 = 0;
u8 *g_LightsFileData = NULL;
u32 var800a4cdc = 0;
u32 var800a4ce0 = 0;
s16 var800a4ce4[2] = {0};

View File

@ -974,13 +974,13 @@
#define LANGUAGE_ENGLISH 0
#define LANGUAGE_JAPANESE 1
#define LIGHTOP_1 1
#define LIGHTOP_2 2
#define LIGHTOP_3 3
#define LIGHTOP_4 4
#define LIGHTOP_5 5
#define LIGHTOP_6 6
#define LIGHTOP_7 7
#define LIGHTOP_1 1
#define LIGHTOP_2 2
#define LIGHTOP_3 3
#define LIGHTOP_4 4
#define LIGHTOP_5 5
#define LIGHTOP_TURNON 6
#define LIGHTOP_TURNOFF 7
// These actions are assigned to chr->myaction
#define MA_NONE 0
@ -2407,6 +2407,8 @@
#define ROOMFLAG_DISABLED 0x0001
#define ROOMFLAG_VISIBLEBYPLAYER 0x0004
#define ROOMFLAG_VISIBLEBYAIBOT 0x0008
#define ROOMFLAG_0100 0x0100
#define ROOMFLAG_LIGHTSOFF 0x2000
#define ROOMFLAG_PLAYAMBIENTTRACK 0x4000
#define ROOMFLAG_OUTDOORS 0x8000

View File

@ -31,7 +31,7 @@ u32 func0f0023b8(void);
u32 func0f00259c(void);
u32 func0f002844(void);
u32 func0f002a98(void);
void func0f002b58(s32 roomthing, bool enable);
void roomSetLightsOn(s32 roomnum, s32 enable);
void roomSetLighting(s32 roomnum, s32 operation, u8 arg2, u8 arg3, u8 arg4);
u32 func0f002ef8(void);
void func0f0033b0(void);

View File

@ -731,7 +731,7 @@ extern struct portal *g_Portals;
extern u32 var800a4ccc;
extern u8 *var800a4cd0;
extern struct portalcmd *g_PortalCommands;
extern u32 var800a4cd8;
extern u8 *g_LightsFileData;
extern u32 var800a4ce0;
extern s16 var800a4ce4[2];
extern struct var800a4ce8 *var800a4ce8;

View File

@ -3381,7 +3381,8 @@ struct room {
/*0x05*/ s8 unk05;
/*0x06*/ u8 unk06;
/*0x07*/ u8 unk07;
/*0x08*/ u32 unk08;
/*0x08*/ s8 numlights;
/*0x0a*/ u16 lightindex; // index of start of this room's lights in data file
/*0x0c*/ u16 unk0c;
/*0x0e*/ s16 unk0e;
/*0x10*/ struct screenbox screenbox;
@ -6357,4 +6358,27 @@ struct var8009dbe0 {
u32 unk44;
};
struct light {
/*0x00*/ u16 roomnum;
/*0x02*/ u16 unk02;
/*0x04*/ u8 unk04;
/*0x05*/ u8 unk05_00 : 1;
/*0x05*/ u8 healthy : 1; // just a guess based on context
/*0x05*/ u8 on : 1;
/*0x06*/ u16 unk06;
/*0x08*/ u16 unk08;
/*0x0a*/ s16 x1;
/*0x0c*/ s16 y1;
/*0x0e*/ s16 z1;
/*0x10*/ s16 x2;
/*0x12*/ s16 y2;
/*0x14*/ s16 z2;
/*0x16*/ s16 x3;
/*0x18*/ s16 y3;
/*0x1a*/ s16 z3;
/*0x1c*/ s16 x4;
/*0x1e*/ s16 y4;
/*0x20*/ s16 z4;
};
#endif