From b51802ea3588497c4fae92703c8142793fe83b72 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Wed, 27 Mar 2024 09:43:19 -0700 Subject: [PATCH] Matched REL/w01/mg_coin + some data cleanup --- config/GMPE01_00/rels/w01Dll/symbols.txt | 236 ++--- configure.py | 2 +- include/REL/w01Dll.h | 1 + include/game/board/player.h | 2 + src/REL/w01Dll/main.c | 10 +- src/REL/w01Dll/mg_coin.c | 1072 ++++++++++++++++++++++ src/REL/w03Dll/mg_item.c | 3 +- src/REL/w03Dll/statue.c | 36 +- src/game/board/item.c | 363 ++++---- src/game/board/lottery.c | 2 +- 10 files changed, 1402 insertions(+), 325 deletions(-) create mode 100755 src/REL/w01Dll/mg_coin.c diff --git a/config/GMPE01_00/rels/w01Dll/symbols.txt b/config/GMPE01_00/rels/w01Dll/symbols.txt index bd58c480..c6b4e59a 100644 --- a/config/GMPE01_00/rels/w01Dll/symbols.txt +++ b/config/GMPE01_00/rels/w01Dll/symbols.txt @@ -75,31 +75,31 @@ fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 scope:local fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 scope:local fn_1_9D00 = .text:0x00009D00; // type:function size:0xD8 fn_1_9DD8 = .text:0x00009DD8; // type:function size:0x6E0 -fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C -fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 -fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 -fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 -fn_1_B018 = .text:0x0000B018; // type:function size:0x70 -fn_1_B088 = .text:0x0000B088; // type:function size:0x144 -fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC -fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 -fn_1_B478 = .text:0x0000B478; // type:function size:0x680 -fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 -fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 -fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 -fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 -fn_1_C000 = .text:0x0000C000; // type:function size:0xFC -fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 -fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 -fn_1_C844 = .text:0x0000C844; // type:function size:0x50 -fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 -fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C -fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC -fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 -fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 -fn_1_D034 = .text:0x0000D034; // type:function size:0x48 -fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 -fn_1_D114 = .text:0x0000D114; // type:function size:0x62C +fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C scope:local +fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 scope:local +fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 scope:local +fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 scope:local +fn_1_B018 = .text:0x0000B018; // type:function size:0x70 scope:local +fn_1_B088 = .text:0x0000B088; // type:function size:0x144 scope:local +fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC scope:local +fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 scope:local +fn_1_B478 = .text:0x0000B478; // type:function size:0x680 scope:local +fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 scope:local +fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 scope:local +fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 scope:local +fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 scope:local +fn_1_C000 = .text:0x0000C000; // type:function size:0xFC scope:local +fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 scope:local +fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 scope:local +fn_1_C844 = .text:0x0000C844; // type:function size:0x50 scope:local +fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 scope:local +fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C scope:local +fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC scope:local +fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 scope:local +fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 scope:local +fn_1_D034 = .text:0x0000D034; // type:function size:0x48 scope:local +fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 scope:local +fn_1_D114 = .text:0x0000D114; // type:function size:0x62C scope:local fn_1_D740 = .text:0x0000D740; // type:function size:0x644 fn_1_DD84 = .text:0x0000DD84; // type:function size:0x110 fn_1_DE94 = .text:0x0000DE94; // type:function size:0x26C @@ -220,67 +220,67 @@ lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data: lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC data:2byte -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float @@ -362,12 +362,12 @@ lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 scope:local data:stri lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 scope:local data:string lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 scope:local data:byte lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 scope:local -lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 -lbl_1_data_67C = .data:0x0000067C; // type:object size:0x14 -lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 -lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 -lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 -lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x8 +lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 scope:local +lbl_1_data_67C = .data:0x0000067C; // type:object size:0x12 scope:local data:2byte +lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 scope:local +lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 scope:local +lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 scope:local +lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x3 scope:local data:string lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 @@ -418,32 +418,32 @@ lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 scope:local data:byte lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA scope:local data:2byte lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 scope:local data:4byte lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x42 data:2byte -lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 data:2byte -lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 data:4byte -lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte -lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC -lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 data:4byte -lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 data:4byte -lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 data:2byte -lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 data:2byte -lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte -lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte -lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 data:4byte -lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC data:float -lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 data:2byte -lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 data:4byte -lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 data:4byte -lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 data:2byte -lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 data:float -lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 data:4byte -lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 data:4byte -lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 -lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 data:2byte -lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 data:2byte -lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 data:2byte -lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 data:2byte -lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 data:4byte -lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 data:4byte +lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC scope:local +lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC scope:local data:float +lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 scope:local data:float +lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 scope:local +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 scope:local data:4byte lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 data:4byte lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 data:4byte lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index 01290ed9..ca087f34 100644 --- a/configure.py +++ b/configure.py @@ -1085,7 +1085,7 @@ config.libs = [ objects = { Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w01Dll/main.c"), - Object(NonMatching, "REL/w01Dll/mg_coin.c"), + Object(Matching, "REL/w01Dll/mg_coin.c"), Object(NonMatching, "REL/w01Dll/mg_item.c"), } ), diff --git a/include/REL/w01Dll.h b/include/REL/w01Dll.h index a2a3af3f..b8535e89 100755 --- a/include/REL/w01Dll.h +++ b/include/REL/w01Dll.h @@ -12,6 +12,7 @@ typedef struct { extern void fn_1_9D00(s32 arg0); extern void fn_1_9DD8(void); + extern void fn_1_D740(s16 *arg0); extern void fn_1_DD84(void); extern void fn_1_DE94(void); diff --git a/include/game/board/player.h b/include/game/board/player.h index 5fef2c61..69aafebc 100644 --- a/include/game/board/player.h +++ b/include/game/board/player.h @@ -137,11 +137,13 @@ void BoardPlayerMotBlendExec(omObjData*); s32 BoardPlayerAutoSizeGet(s32); void BoardPlayerAutoSizeSet(s32, s32); void BoardPlayerCopyMat(s32); +void BoardBowserSuitInit(s32); void BoardBowserSuitKill(s32); void BoardDiceDigit2DInit(s32, s32); void BoardDiceDigit2DUpdateEnable(s32); void BoardPlayerResizeAnimExec(s32 player, s32 size); s32 BoardPlayerAnimBlendCheck(s32); +s16 BoardBowserSuitPlayerModelGet(void); void BoardBowserSuitMotionSetWait(void); void BoardBowserSuitPlayerModelKill(void); void BoardDiceDigit2DShowSet(s32); diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c index 1737da2e..48239721 100755 --- a/src/REL/w01Dll/main.c +++ b/src/REL/w01Dll/main.c @@ -8,6 +8,7 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" #include "game/process.h" #include "game/window.h" @@ -647,15 +648,12 @@ static void fn_1_130C(void) { BoardPlayerMotionStart(temp_r31, 1, 0x40000001); } -// TODO: consider moving to gamework_data.h or board/player.h. -static inline s16 GWPlayerCurrSpaceCurrGet(void) { - return GWPlayer[GWSystem.player_curr].space_curr; -} - static s32 fn_1_157C(void) { s32 temp_r31; + s16 temp_curr; - temp_r31 = BoardSpaceFlagGet(0, GWPlayerCurrSpaceCurrGet()) & 0x600000; + temp_curr = GWPlayer[GWSystem.player_curr].space_curr; + temp_r31 = BoardSpaceFlagGet(0, temp_curr) & 0x600000; BoardDiceDigit2DShowSet(0); if (temp_r31 == 0x200000) { fn_1_130C(); diff --git a/src/REL/w01Dll/mg_coin.c b/src/REL/w01Dll/mg_coin.c new file mode 100755 index 00000000..71f92248 --- /dev/null +++ b/src/REL/w01Dll/mg_coin.c @@ -0,0 +1,1072 @@ +#include "REL/w01Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "math.h" + +typedef struct { + /* 0x00 */ Vec unk00; + /* 0x0C */ float unk0C; +} Data690InnerStruct; // Size 0x10 + +typedef Data690InnerStruct Data690Block[15]; + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ Vec unk04; + /* 0x10 */ Vec unk10; + /* 0x1C */ u16 unk1C; + /* 0x1E */ char unk1E[2]; + /* 0x20 */ float unk20; + /* 0x24 */ u16 unk24; + /* 0x26 */ s16 unk26; + /* 0x28 */ s16 unk28; + /* 0x2A */ char unk2A[2]; +} Bss720Data; // Size 0x2C + +typedef struct { + /* 0x00 */ char unk00[4]; + /* 0x04 */ Data690Block *unk04; + /* 0x08 */ u16 unk08; + /* 0x0A */ char unk0A[2]; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ Vec unk2C; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s16 unk40; + /* 0x42 */ char unk42[2]; +} Bss714Data; // Size 0x44 + +static void fn_1_A4B8(omObjData *arg0); +static void fn_1_A554(void); +static void fn_1_A5FC(void); +static void fn_1_A6E0(omObjData *arg0); +static float fn_1_B018(Data690Block *arg0); +static void fn_1_B088(omObjData *arg0); +static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2); +static void fn_1_B3B8(omObjData *arg0); +static void fn_1_B478(omObjData *arg0); +static void fn_1_BAF8(omObjData *arg0); +static void fn_1_BCDC(omObjData *arg0); +static void fn_1_BF00(omObjData *arg0); +static void fn_1_BF68(omObjData *arg0); +static void fn_1_C000(void); +static void fn_1_C0FC(omObjData *arg0); +static void fn_1_C25C(void); +static void fn_1_C844(void); +static void fn_1_C894(omObjData *arg0); +static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2); +static float fn_1_C998(Vec *arg0); +static u32 fn_1_CB44(Vec *arg0, float arg1); +static void fn_1_CEC4(void); +static void fn_1_D034(void); +static void fn_1_D07C(omObjData *arg0); +static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix); + +static s32 lbl_1_bss_79C; +static s32 lbl_1_bss_798; +static s16 lbl_1_bss_796; +static s16 lbl_1_bss_790[3]; +static s16 lbl_1_bss_78A[3]; +static s16 lbl_1_bss_788; +static s16 lbl_1_bss_760[20]; +static Process *lbl_1_bss_75C; +static omObjData *lbl_1_bss_758; +static float lbl_1_bss_754; +static s16 lbl_1_bss_750; +static s32 lbl_1_bss_74C; +static s32 lbl_1_bss_748; +static s16 lbl_1_bss_744; +static Vec lbl_1_bss_738; +static s32 lbl_1_bss_734; +static s32 lbl_1_bss_730; +static s32 lbl_1_bss_72C; +static u16 lbl_1_bss_72A; +static u16 lbl_1_bss_728; +static s32 lbl_1_bss_724; +static omObjData *lbl_1_bss_720; +static omObjData *lbl_1_bss_714[3]; +static omObjData *lbl_1_bss_710; +static AnimData *lbl_1_bss_70C; +static s16 lbl_1_bss_708; + +static Vec lbl_1_data_658[3] = { + { -50.0f, 238.0f, 0.0f }, + { 0.0f, 275.5f, 0.0f }, + { 50.0f, 238.0f, 0.0f } +}; + +static u16 lbl_1_data_67C[3][3] = { + { 10, 5, 20 }, + { 10, 5, 20 }, + { 5, 20, 10 } +}; + +static Data690Block lbl_1_data_690[3] = { + { + { { -50.0f, -12.0f, 0.0f }, 75.0f }, + { { -50.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 63.0f, 0.0f }, 25.0f }, + { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { 50.0f, 88.0f, 0.0f }, 87.5f }, + { { 50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 0.0f, -12.0f, 0.0f }, 75.0f }, + { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { -50.0f, 63.0f, 0.0f }, 50.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, + { { 0.0f, 113.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 12.5f }, + { { -50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 50.0f, -12.0f, 0.0f }, 100.0f }, + { { 50.0f, 88.0f, 0.0f }, 50.0f }, + { { 0.0f, 88.0f, 0.0f }, 25.0f }, + { { 0.0f, 113.0f, 0.0f }, 50.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 213.0f, 0.0f }, 0.0f } + } +}; + +static Data690Block lbl_1_data_960[3] = { + { + { { -50.0f, -12.0f, 0.0f }, 125.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, + { { 0.0f, 113.0f, 0.0f }, 25.0f }, + { { 0.0f, 138.0f, 0.0f }, 50.0f }, + { { 50.0f, 138.0f, 0.0f }, 37.5f }, + { { 50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 0.0f, -12.0f, 0.0f }, 75.0f }, + { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { 50.0f, 63.0f, 0.0f }, 75.0f }, + { { 50.0f, 138.0f, 0.0f }, 50.0f }, + { { 0.0f, 138.0f, 0.0f }, 25.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 12.5f }, + { { -50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 50.0f, -12.0f, 0.0f }, 75.0f }, + { { 50.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 113.0f, 0.0f }, 50.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 213.0f, 0.0f }, 0.0f } + } +}; + +static Data690Block lbl_1_data_C30[3] = { + { + { { -50.0f, -12.0f, 0.0f }, 100.0f }, + { { -50.0f, 88.0f, 0.0f }, 50.0f }, + { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { 0.0f, 138.0f, 0.0f }, 50.0f }, + { { -50.0f, 138.0f, 0.0f }, 37.5f }, + { { -50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 0.0f, -12.0f, 0.0f }, 75.0f }, + { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { 50.0f, 63.0f, 0.0f }, 100.0f }, + { { 50.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 213.0f, 0.0f }, 0.0f } + }, + { + { { 50.0f, -12.0f, 0.0f }, 75.0f }, + { { 50.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 63.0f, 0.0f }, 25.0f }, + { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { -50.0f, 88.0f, 0.0f }, 50.0f }, + { { -50.0f, 138.0f, 0.0f }, 50.0f }, + { { 0.0f, 138.0f, 0.0f }, 25.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { 50.0f, 163.0f, 0.0f }, 12.5f }, + { { 50.0f, 175.5f, 0.0f }, 0.0f } + } +}; + +void fn_1_9D00(s32 arg0) { + s32 temp_r31; + s32 var_r30; + + temp_r31 = GWSystem.star_pos; + var_r30 = 0; + if (lbl_1_bss_0->unk00_field0 != 0) { + if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { + var_r30 = 0; + } else { + var_r30 = 1; + } + } else if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { + var_r30 = 1; + } else { + var_r30 = 0; + } + if (BoardPlayerCoinsGet(arg0) < 5) { + var_r30 = 0; + } + if (var_r30 != 0) { + BoardComKeySetLeft(); + } else { + BoardComKeySetRight(); + } +} + +void fn_1_9DD8(void) { + Vec sp2C[3]; + Vec sp20; + Vec sp14; + Vec sp8; + Bss720Data *temp_r30; + Bss714Data *temp_r29; + s32 i; + + lbl_1_bss_79C = GWPlayer[GWSystem.player_curr].port; + lbl_1_bss_796 = lbl_1_bss_6C4[6]; + lbl_1_bss_790[0] = lbl_1_bss_6C4[7]; + lbl_1_bss_790[1] = lbl_1_bss_6C4[8]; + lbl_1_bss_790[2] = lbl_1_bss_6C4[9]; + lbl_1_bss_78A[0] = lbl_1_bss_6C4[10]; + lbl_1_bss_78A[1] = lbl_1_bss_6C4[11]; + lbl_1_bss_78A[2] = lbl_1_bss_6C4[12]; + BoardModelVisibilitySet(lbl_1_bss_790[0], 0); + BoardModelVisibilitySet(lbl_1_bss_790[1], 0); + BoardModelVisibilitySet(lbl_1_bss_790[2], 0); + lbl_1_bss_734 = rand8() % 3; + BoardModelVisibilitySet(lbl_1_bss_790[lbl_1_bss_734], 1); + BoardModelMotionStart(lbl_1_bss_790[lbl_1_bss_734], 0, 0x40000001); + BoardModelPosGet(lbl_1_bss_796, &sp20); + sp8.x = sp8.y = sp8.z = 1.0f; + for (i = 0; i < 3; i++) { + sp2C[i] = lbl_1_data_690[i][0].unk00; + sp2C[i].y -= -12.0f; + BoardModelPosSet(lbl_1_bss_78A[i], sp20.x + sp2C[i].x, sp20.y + sp2C[i].y, sp20.z + 30.0f); + BoardModelVisibilitySet(lbl_1_bss_78A[i], 1); + BoardModelScaleSetV(lbl_1_bss_78A[i], &sp8); + } + lbl_1_bss_798 = GWSystem.player_curr; + BoardModelPosGet(lbl_1_bss_796, &lbl_1_bss_738); + lbl_1_bss_730 = 1; + BoardModelPosGet(lbl_1_bss_78A[lbl_1_bss_730], &sp14); + BoardPlayerPosGet(lbl_1_bss_798, &sp20); + lbl_1_bss_758 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A4B8); + lbl_1_bss_720 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B3B8); + lbl_1_bss_720->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss720Data), MEMORY_DEFAULT_NUM); + temp_r30 = lbl_1_bss_720->data; + temp_r30->unk02 = 0; + temp_r30->unk04 = sp14; + temp_r30->unk28 = 0; + fn_1_CB44(&sp14, 0.0f); + fn_1_B088(lbl_1_bss_720); + lbl_1_bss_750 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 19)); + Hu3DModelAttrSet(lbl_1_bss_750, 1); + for (i = 0; i < 3; i++) { + lbl_1_bss_714[i] = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A6E0); + lbl_1_bss_714[i]->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss714Data), MEMORY_DEFAULT_NUM); + lbl_1_bss_714[i]->work[0] = lbl_1_bss_78A[i]; + lbl_1_bss_714[i]->work[1] = 0; + lbl_1_bss_714[i]->work[3] = 0; + temp_r29 = lbl_1_bss_714[i]->data; + if (i == lbl_1_bss_730) { + lbl_1_bss_714[i]->work[2] = 1; + } else { + lbl_1_bss_714[i]->work[2] = 0; + } + temp_r29->unk18 = 1.0f; + temp_r29->unk1C = 0.0f; + } + lbl_1_bss_72C = 0; + lbl_1_bss_74C = 5; + lbl_1_bss_748 = 0x3C; + lbl_1_bss_72A = 0; + fn_1_CEC4(); + lbl_1_bss_788 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 17), NULL, 0); + BoardModelMotionUpdateSet(lbl_1_bss_788, 1); + BoardModelVisibilitySet(lbl_1_bss_788, 0); + for (i = 0; i < 20; i++) { + lbl_1_bss_760[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); + BoardModelVisibilitySet(lbl_1_bss_760[i], 0); + } +} + +static void fn_1_A4B8(omObjData *arg0) { + if (lbl_1_bss_72A == 0) { + return; + } + if (BoardMGDoneFlagGet() == 1) { + if (lbl_1_bss_754 <= 0.0f) { + fn_1_A5FC(); + omDelObjEx(HuPrcCurrentGet(), arg0); + } + } + lbl_1_bss_754 -= 1.0f; +} + +static void fn_1_A554(void) { + float temp_f1; + + lbl_1_bss_72A = 1; + BoardMGExit(); + temp_f1 = BoardModelMotionTimeGet(lbl_1_bss_796); + lbl_1_bss_754 = temp_f1; + BoardModelMotionStart(lbl_1_bss_796, 0, 0); + BoardModelMotionTimeSet(lbl_1_bss_796, temp_f1); + BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); +} + +static void fn_1_A5FC(void) { + s32 i; + + for (i = 0; i < 3; i++) { + BoardModelVisibilitySet(lbl_1_bss_790[i], 0); + BoardModelVisibilitySet(lbl_1_bss_78A[i], 0); + omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_714[i]); + } + for (i = 0; i < 20; i++) { + BoardModelKill(lbl_1_bss_760[i]); + } + fn_1_D034(); + BoardModelKill(lbl_1_bss_788); + BoardMGDoneFlagSet(0); + Hu3DModelKill(lbl_1_bss_750); +} + +static void fn_1_A6E0(omObjData *arg0) { + Bss714Data *temp_r31; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + + temp_r31 = arg0->data; + BoardModelScaleGet(arg0->work[0], &sp2C); + switch (arg0->work[2]) { + case 1: + if ((sp2C.x += 0.08f) >= 1.5f) { + sp2C.x = 1.5f; + sp2C.y = 1.5f; + if (arg0->work[3] == 1) { + arg0->work[2] = 0; + } else { + arg0->work[2] = 2; + } + } else { + sp2C.y += 0.08f; + } + BoardModelScaleSetV(arg0->work[0], &sp2C); + break; + case 2: + if ((sp2C.x -= 0.08f) <= 1.0f) { + sp2C.x = 1.0f; + sp2C.y = 1.0f; + if (arg0->work[1] == 1) { + arg0->work[2] = 0; + arg0->work[1] = 0; + } else { + arg0->work[2] = 1; + } + } else { + sp2C.y -= 0.08f; + } + BoardModelScaleSetV(arg0->work[0], &sp2C); + break; + case 3: + switch (lbl_1_bss_734) { + case 0: + temp_r31->unk04 = &lbl_1_data_690[lbl_1_bss_730]; + break; + case 1: + temp_r31->unk04 = &lbl_1_data_960[lbl_1_bss_730]; + break; + case 2: + temp_r31->unk04 = &lbl_1_data_C30[lbl_1_bss_730]; + break; + } + BoardModelPosGet(arg0->work[0], &sp14); + sp14.x = lbl_1_bss_738.x + ((*temp_r31->unk04)[0].unk00.x + temp_r31->unk18); + temp_r31->unk18 = -temp_r31->unk18; + BoardModelPosSetV(arg0->work[0], &sp14); + sp14.y += 5.0f; + BoardPlayerPosSetV(lbl_1_bss_798, &sp14); + temp_r31->unk1C += 0.022222223f; + temp_r31->unk38 -= 0.011111111f; + if (temp_r31->unk38 < 0.0f) { + temp_r31->unk38 = 0.0f; + } + Hu3DModelTPLvlSet(lbl_1_bss_750, temp_r31->unk38); + if (temp_r31->unk1C > 1.0f) { + temp_r31->unk1C = 1.0f; + } + PSVECAdd(&temp_r31->unk20, &temp_r31->unk2C, &temp_r31->unk20); + if (temp_r31->unk20.y >= 4.0f) { + temp_r31->unk20.y = 4.0f; + temp_r31->unk2C.y = -0.1f; + } + if (temp_r31->unk20.y < 1.0f) { + temp_r31->unk20.y = 1.0f; + } + Hu3DModelScaleSet(lbl_1_bss_750, temp_r31->unk20.x, temp_r31->unk20.y, temp_r31->unk20.z); + break; + case 4: + Hu3DModelAttrSet(lbl_1_bss_750, 1); + arg0->work[2] = 5; + temp_r31->unk08 = 0; + temp_r31->unk0C = 12.0f; + temp_r31->unk14 = (fn_1_B018(temp_r31->unk04) - temp_r31->unk0C) / 90.0f; + temp_r31->unk10 = temp_r31->unk14 / 20.0f; + HuAudFXPlay(0x406); + HuAudFXPlay(0x407); + HuAudFXStop(lbl_1_bss_724); + break; + case 5: + var_f31 = temp_r31->unk0C + temp_r31->unk10; + temp_r31->unk0C = var_f31; + temp_r31->unk10 *= 1.04f; + if (temp_r31->unk10 > temp_r31->unk14) { + temp_r31->unk10 = temp_r31->unk14; + } + BoardModelPosGet(arg0->work[0], &sp20); + while (var_f31 >= (*temp_r31->unk04)[temp_r31->unk08].unk0C) { + var_f31 -= (*temp_r31->unk04)[temp_r31->unk08].unk0C; + temp_r31->unk08++; + if ((*temp_r31->unk04)[temp_r31->unk08].unk0C == 0.0f) { + omVibrate(lbl_1_bss_798, 12, 6, 6); + var_f31 = 0.0f; + lbl_1_bss_72C = 1; + lbl_1_bss_724 = HuAudFXPlay(0x332); + lbl_1_bss_708 = 0; + arg0->work[2] = 6; + if (sp20.x - lbl_1_bss_738.x < -25.0f) { + temp_r31->unk40 = 0; + lbl_1_bss_728 = 5; + } else if (sp20.x - lbl_1_bss_738.x > 25.0f) { + temp_r31->unk40 = 2; + lbl_1_bss_728 = 10; + } else { + temp_r31->unk40 = 1; + lbl_1_bss_728 = 20; + } + break; + } + } + temp_r31->unk0C = var_f31; + sp14.x = sp14.y = sp14.z = 0.0f; + if (lbl_1_bss_72C == 0) { + fn_1_C94C(&(*temp_r31->unk04)[temp_r31->unk08].unk00, &(*temp_r31->unk04)[temp_r31->unk08 + 1].unk00, &sp8); + sp20.x = lbl_1_bss_738.x + (sp8.x * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.x); + sp20.y = lbl_1_bss_738.y + (sp8.y * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.y); + } else { + sp20.x = lbl_1_bss_738.x + (*temp_r31->unk04)[temp_r31->unk08].unk00.x; + sp20.y = lbl_1_bss_738.y + (*temp_r31->unk04)[temp_r31->unk08].unk00.y; + } + BoardModelPosSetV(arg0->work[0], &sp20); + sp20.y += 5.0f; + BoardPlayerPosSetV(lbl_1_bss_798, &sp20); + BoardModelRotSetV(arg0->work[0], &sp14); + BoardPlayerRotSetV(lbl_1_bss_798, &sp14); + break; + case 6: + if (lbl_1_bss_708 == 0 && (HuAudFXStatusGet(lbl_1_bss_724) == 1 || HuAudFXStatusGet(lbl_1_bss_724) == 0)) { + BoardAudSeqPause(0, 0, 1000); + lbl_1_bss_708 = 1; + } + BoardModelVisibilitySet(lbl_1_bss_788, 1); + sp20.x = lbl_1_bss_738.x + lbl_1_data_658[temp_r31->unk40].x; + sp20.y = lbl_1_bss_738.y + lbl_1_data_658[temp_r31->unk40].y; + sp20.z = lbl_1_bss_738.z + lbl_1_data_658[temp_r31->unk40].z; + BoardModelPosSetV(lbl_1_bss_788, &sp20); + temp_r31->unk1C -= 0.05f; + if (temp_r31->unk1C <= 0.0f) { + temp_r31->unk1C = 0.0f; + } + break; + } +} + +static float fn_1_B018(Data690Block *arg0) { + float var_f31; + s32 i; + + var_f31 = 0.0f; + i = 0; + while (TRUE) { + if ((*arg0)[i].unk0C == 0.0f) { + break; + } + var_f31 += (*arg0)[i].unk0C; + i++; + } + return var_f31; +} + +static void fn_1_B088(omObjData *arg0) { + Bss720Data *temp_r31; + u16 sp8[] = { 20, 60, 120, 190 }; + s32 i; + + temp_r31 = arg0->data; + if (rand8() < sp8[GWPlayerCfg[lbl_1_bss_798].diff]) { + for (i = 0; i < 3; i++) { + if (lbl_1_data_67C[lbl_1_bss_734][i] == 20) { + temp_r31->unk26 = i; + } + } + } else { + temp_r31->unk26 = rand8() % 3; + } + temp_r31->unk24 = rand8() % 20 + 20; +} + +static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2) { + Bss720Data *temp_r31; + + temp_r31 = arg0->data; + *arg1 = *arg2 = 0; + if (temp_r31->unk24 != 0) { + temp_r31->unk24--; + return; + } + if (temp_r31->unk28 >= 4 || (rand8() & 1)) { + if (temp_r31->unk26 == lbl_1_bss_730) { + *arg2 |= 0x100; + } else if (temp_r31->unk26 < lbl_1_bss_730) { + *arg1 |= 1; + } else { + *arg1 |= 2; + } + temp_r31->unk24 = rand8() % 10 + 10; + } else { + temp_r31->unk28++; + temp_r31->unk24 = rand8() % 10 + 20; + if (lbl_1_bss_730 == 0) { + *arg1 |= 2; + } else if (lbl_1_bss_730 == 2) { + *arg1 |= 1; + } else if (rand8() & 1) { + *arg1 |= 1; + } else { + *arg1 |= 2; + } + } +} + +static void fn_1_B3B8(omObjData *arg0) { + float temp_f31; + + temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_796); + if (BoardModelMotionTimeGet(lbl_1_bss_796) >= temp_f31) { + lbl_1_bss_744 = MGSeqCreate(1, lbl_1_bss_74C, 0x120, 0x40); + lbl_1_bss_720->func = fn_1_B478; + BoardMusStart(1, 0xF, 0x7F, 0); + lbl_1_bss_724 = HuAudFXPlay(0x408); + } +} + +static void fn_1_B478(omObjData *arg0) { + Bss720Data *temp_r31; + Vec sp18; + Vec spC; + float var_f28; + u16 var_r27; + u16 var_r29; + + temp_r31 = arg0->data; + if ((lbl_1_bss_748 -= 1) == 0) { + if ((lbl_1_bss_74C -= 1) >= 0) { + MGSeqParamSet(lbl_1_bss_744, 1, lbl_1_bss_74C); + } + lbl_1_bss_748 = 60; + } + if (GWPlayerCfg[lbl_1_bss_798].iscom == 1) { + fn_1_B1CC(arg0, &var_r29, &var_r27); + } else { + var_r29 = HuPadDStkRep[lbl_1_bss_79C]; + var_r27 = HuPadBtnDown[lbl_1_bss_79C]; + } + if ((var_r29 & 1) && lbl_1_bss_730 != 0) { + lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 2; + lbl_1_bss_730--; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 1; + } + if ((var_r29 & 2) && lbl_1_bss_730 != 2) { + lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 2; + lbl_1_bss_730++; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 1; + } + BoardModelPosGet(lbl_1_bss_78A[lbl_1_bss_730], &sp18); + BoardPlayerPosGet(lbl_1_bss_798, &spC); + fn_1_CB44(&sp18, 0.0f); + temp_r31->unk04 = sp18; + if (lbl_1_bss_74C < 0 || (var_r27 & 0x100)) { + MGSeqParamSet(lbl_1_bss_744, 2, -1); + lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; + BoardPlayerPosGet(lbl_1_bss_798, &spC); + var_f28 = sqrtf((temp_r31->unk04.x - spC.x) * (temp_r31->unk04.x - spC.x) + (temp_r31->unk04.z - spC.z) * (temp_r31->unk04.z - spC.z)); + fn_1_C94C(&spC, &temp_r31->unk04, &temp_r31->unk10); + temp_r31->unk10.y = 0.0f; + temp_r31->unk10.x *= var_f28 / 30.0f; + temp_r31->unk10.z *= var_f28 / 30.0f; + temp_r31->unk00 = 0; + temp_r31->unk20 = 0.0f; + arg0->func = fn_1_BAF8; + } +} + +static void fn_1_BAF8(omObjData *arg0) { + Bss720Data *temp_r31; + Vec sp14; + Vec sp8; + + temp_r31 = arg0->data; + if (lbl_1_bss_714[lbl_1_bss_730]->work[2] != 0) { + return; + } + BoardPlayerMotionStart(lbl_1_bss_798, 4, 0); + BoardPlayerPosGet(lbl_1_bss_798, &sp14); + sp14.x += temp_r31->unk10.x; + sp14.z += temp_r31->unk10.z; + sp14.y = lbl_1_bss_738.y + 80.0 * sin(6.0f * temp_r31->unk20 * M_PI / 180.0); + BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8); + if ((temp_r31->unk20 += 1.0f) == 30.0f) { + sp14.y = sp8.y + 5.0f; + BoardPlayerPosSetV(lbl_1_bss_798, &sp14); + BoardPlayerMotionShiftSet(lbl_1_bss_798, 2, 0.0f, 10.0f, 0); + arg0->func = fn_1_BCDC; + } + BoardPlayerPosSetV(lbl_1_bss_798, &sp14); +} + +static void fn_1_BCDC(omObjData *arg0) { + Bss720Data *temp_r29; + Bss714Data *temp_r31; + Vec sp14; + Vec sp8; + + temp_r29 = arg0->data; + BoardPlayerPosGet(lbl_1_bss_798, &sp14); + sp8 = sp14; + sp8.z += 100.0f; + if (fn_1_CB44(&sp8, 10.0f) == 1) { + BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, 0); + temp_r29->unk1C = 90; + lbl_1_bss_710->work[0] = 1; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 3; + temp_r31 = lbl_1_bss_714[lbl_1_bss_730]->data; + Hu3DModelAttrReset(lbl_1_bss_750, 1); + Hu3DModelPosSet(lbl_1_bss_750, sp14.x, sp14.y, sp14.z); + temp_r31->unk20.x = 1.4f; + temp_r31->unk20.y = 1.4f; + temp_r31->unk20.z = 1.4f; + temp_r31->unk2C.x = 0.055999998f; + temp_r31->unk2C.y = 0.08088889f; + temp_r31->unk2C.z = 0.055999998f; + temp_r31->unk38 = 1.0f; + temp_r31->unk3C = 0.0f; + Hu3DModelScaleSet(lbl_1_bss_750, 1.4f, 1.4f, 1.4f); + arg0->func = fn_1_BF00; + } +} + +static void fn_1_BF00(omObjData *arg0) { + Bss720Data *temp_r31; + + temp_r31 = arg0->data; + if (temp_r31->unk1C == 0) { + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 4; + arg0->func = fn_1_BF68; + } else { + temp_r31->unk1C--; + } +} + +static void fn_1_BF68(omObjData *arg0) { + Bss720Data *sp8; + + sp8 = arg0->data; + if (lbl_1_bss_714[lbl_1_bss_730]->work[2] == 6) { + lbl_1_bss_75C = HuPrcCreate(fn_1_C000, 0x2004, 0x1000, 0); + lbl_1_bss_75C->user_data = arg0; + arg0->func = NULL; + } +} + +static void fn_1_C000(void) { + char sp8[16]; // array size may range between 1 and 16 (inclusive) + omObjData *temp_r30; + Bss720Data *temp_r31; + + BoardAudSeqFadeOut(1, 100); + sprintf(&sp8, "%d", lbl_1_bss_728); + BoardWinCreate(2, MAKE_MESSID(11, 6), 0); + BoardWinInsertMesSet(MAKE_MESSID_PTR(sp8), 0); + BoardWinWait(); + BoardWinKill(); + temp_r30 = HuPrcCurrentGet()->user_data; + temp_r31 = temp_r30->data; + temp_r31->unk10.x = 0.0f; + temp_r31->unk10.y = 10.0f; + temp_r31->unk10.z = 3.0f; + temp_r31->unk20 = 0.0f; + BoardPlayerMotionShiftSet(lbl_1_bss_798, 4, 0.0f, 10.0f, 0); + temp_r30->func = fn_1_C0FC; + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_C0FC(omObjData *arg0) { + Bss720Data *temp_r31; + Vec sp8; + + temp_r31 = arg0->data; + BoardPlayerPosGet(lbl_1_bss_798, &sp8); + sp8.x += temp_r31->unk10.x; + sp8.y += temp_r31->unk10.y - 0.029166667f * temp_r31->unk20 * temp_r31->unk20; + sp8.z += temp_r31->unk10.z; + temp_r31->unk20 += 1.0f; + if (sp8.y <= lbl_1_bss_738.y) { + BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, 0x40000001); + sp8.y = lbl_1_bss_738.y; + lbl_1_bss_75C = HuPrcCreate(fn_1_C25C, 0x2004, 0x1000, 0); + lbl_1_bss_75C->user_data = arg0; + arg0->func = NULL; + } + BoardPlayerPosSetV(lbl_1_bss_798, &sp8); +} + +static void fn_1_C25C(void) { + Vec sp11C[20]; + Vec sp2C[20]; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + s16 var_r30; + s16 i; + + var_r30 = 0; + BoardPlayerPosGet(lbl_1_bss_798, &sp20); + sp14.x = sp14.y = sp14.z = 1.0f; + for (i = 0; i < lbl_1_bss_728; i++) { + BoardModelVisibilitySet(lbl_1_bss_760[i], 1); + sp11C[i] = sp20; + sp11C[i].y += 600.0f + i * 120; + sp11C[i].x += -25.0f + 50.0f * (frand() & 0xFF) * 0.003921569f; + sp11C[i].z += -25.0f + 50.0f * (frand() & 0xFF) * 0.003921569f; + sp2C[i].x = sp2C[i].z = 0.0f; + sp2C[i].y = 360.0f * (frand() & 0xFF) * 0.003921569f; + BoardModelPosSetV(lbl_1_bss_760[i], &sp11C[i]); + BoardModelScaleSetV(lbl_1_bss_760[i], &sp14); + BoardModelRotSetV(lbl_1_bss_760[i], &sp2C[i]); + } + var_f31 = -1.0f; + while (TRUE) { + for (i = 0; i < lbl_1_bss_728; i++) { + if (i >= var_r30) { + sp11C[i].y += var_f31; + BoardModelPosSetV(lbl_1_bss_760[i], &sp11C[i]); + sp2C[i].y += 45.0f; + if (sp2C[i].y >= 360.0f) { + sp2C[i].y -= 360.0f; + } + BoardModelRotSetV(lbl_1_bss_760[i], &sp2C[i]); + if (sp11C[i].y <= sp20.y + 80.0f) { + sp8 = sp11C[i]; + CharModelCoinEffectCreate(1, &sp8); + BoardModelVisibilitySet(lbl_1_bss_760[i], 0); + var_r30++; + BoardPlayerCoinsAdd(lbl_1_bss_798, 1); + HuAudFXPlay(7); + omVibrate(lbl_1_bss_798, 0xC, 6, 6); + } + } + } + var_f31 *= 1.05f; + if (var_f31 < -20.0f) { + var_f31 = -20.0f; + } + if (var_r30 == lbl_1_bss_728) { + BoardPlayerMotionShiftSet(lbl_1_bss_798, 7, 0.0f, 10.0f, 0); + break; + } + HuPrcVSleep(); + } + while (!BoardPlayerMotionEndCheck(lbl_1_bss_798)) { + HuPrcVSleep(); + } + lbl_1_bss_75C = HuPrcCreate(fn_1_C844, 0x2004, 0x1000, 0); + lbl_1_bss_75C->user_data = HuPrcCurrentGet()->user_data; + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_C844(void) { + omObjData *var_r31; + + BoardWinCreate(2, MAKE_MESSID(11, 7), 0); + BoardWinWait(); + BoardWinKill(); + var_r31 = HuPrcCurrentGet()->user_data; + var_r31->func = fn_1_C894; + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_C894(omObjData *arg0) { + float temp_f31; + + lbl_1_bss_72A = 1; + BoardMGExit(); + temp_f31 = BoardModelMotionTimeGet(lbl_1_bss_796); + lbl_1_bss_754 = temp_f31; + BoardModelMotionStart(lbl_1_bss_796, 0, 0); + BoardModelMotionTimeSet(lbl_1_bss_796, temp_f31); + BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); + omDelObjEx(HuPrcCurrentGet(), arg0); +} + +static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2) { + PSVECSubtract(arg1, arg0, arg2); + PSVECNormalize(arg2, arg2); +} + +static float fn_1_C998(Vec *arg0) { + float temp_f31; + + if (arg0->x || arg0->z) { + if (arg0->x == 0.0f) { + if (arg0->z > 0.0f) { + return 0.0f; + } else { + return 180.0f; + } + } + if (arg0->z == 0.0f) { + if (arg0->x > 0.0f) { + return 90.0f; + } else { + return 270.0f; + } + } + temp_f31 = 180.0 * (atan2(arg0->z, arg0->x) / M_PI); + if (arg0->z < 0.0f) { + temp_f31 = 90.0f - temp_f31; + } else { + temp_f31 = 90.0f - temp_f31; + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + } + return temp_f31; + } + return -1.0f; +} + +static u32 fn_1_CB44(Vec *arg0, float arg1) { + Vec sp24; + Vec sp18; + Vec spC; + float var_f28; + float var_f30; + float var_f31; + + BoardPlayerPosGet(lbl_1_bss_798, &sp18); + PSVECSubtract(arg0, &sp18, &sp24); + PSVECNormalize(&sp24, &sp24); + var_f28 = fn_1_C998(&sp24); + BoardPlayerRotGet(lbl_1_bss_798, &spC); + var_f31 = spC.y; + var_f30 = var_f28 - var_f31; + if (arg1 == 0.0f) { + var_f31 = var_f28; + } else if (fabs(var_f30) > arg1) { + if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + if (var_f30 < 180.0f) { + if (var_f30 > arg1) { + var_f31 += arg1; + } else { + var_f31 += var_f30; + } + } else if (360.0f - var_f30 > arg1) { + var_f31 -= arg1; + } else { + var_f31 -= 360.0f - var_f30; + } + } else { + var_f31 = var_f28; + } + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + BoardPlayerRotYSet(lbl_1_bss_798, var_f31); + if (var_f31 == var_f28) { + return 1; + } else { + return 0; + } +} + +static void fn_1_CEC4(void) { + lbl_1_bss_70C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_W01, 20)); + lbl_1_bss_710 = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_D07C); + lbl_1_bss_710->data = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); + lbl_1_bss_710->model[0] = Hu3DParticleCreate(lbl_1_bss_70C, 0x320); + Hu3DParticleColSet(lbl_1_bss_710->model[0], 0xFF, 0, 0); + Hu3DParticleScaleSet(lbl_1_bss_710->model[0], 5.0f); + Hu3DParticleHookSet(lbl_1_bss_710->model[0], fn_1_D114); + Hu3DParticleBlendModeSet(lbl_1_bss_710->model[0], 1); + Hu3DModelAttrSet(lbl_1_bss_710->model[0], 1); + lbl_1_bss_710->work[0] = 0; +} + +static void fn_1_D034(void) { + Hu3DModelKill(lbl_1_bss_710->model[0]); + omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_710); +} + +static void fn_1_D07C(omObjData *arg0) { + void *sp8; + + sp8 = arg0->data; + switch (arg0->work[0]) { + case 0: + break; + case 1: + arg0->work[0] = 2; + Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelScaleSet(arg0->model[0], 10.0f, 10.0f, 10.0f); + break; + case 2: + break; + } +} + +static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix) { + Bss714Data *temp_r28; + HsfanimStruct01 *var_r31; + Vec sp8; + float temp_f31; + s32 i; + s32 j; + s32 temp_r26; + + BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8); + temp_r28 = lbl_1_bss_714[lbl_1_bss_730]->data; + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk2C = 0.0f; + } + particle->unk_1C = (void*) 1; + } + if (temp_r28->unk1C > 0.0f) { + for (i = 0; i < 80.0f * temp_r28->unk1C; i++) { + var_r31 = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, var_r31++) { + if (var_r31->unk2C == 0.0f) { + break; + } + } + if (j != particle->unk_30) { + temp_r26 = frand() & 0xFFFF; + temp_f31 = (-15.0f + 30.0f * (temp_r26 / 65536.0f)) * temp_r28->unk1C; + var_r31->unk08.x = sp8.x + temp_f31; + var_r31->unk08.y = sp8.y; + var_r31->unk08.z = sp8.z; + var_r31->unk14.x = 255.0f; + var_r31->unk14.y = 155.0f; + var_r31->unk14.z = 55.0f; + var_r31->unk40.a = 0xFF; + var_r31->unk20 = 0.0f; + var_r31->unk24 = temp_r28->unk1C * (-3.0 + (2.0 * (fabs(temp_f31) / 15.0))); + var_r31->unk28 = 0.0f; + var_r31->unk2C = 7.3f; + } + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk2C == 0.0f) { + continue; + } + var_r31->unk34.x = var_r31->unk08.x; + var_r31->unk34.y = var_r31->unk08.y; + var_r31->unk34.z = var_r31->unk08.z; + var_r31->unk08.x += var_r31->unk20; + var_r31->unk08.y += var_r31->unk24; + var_r31->unk08.z += var_r31->unk28; + if (var_r31->unk08.y <= lbl_1_bss_738.y) { + var_r31->unk08.y = lbl_1_bss_738.y; + var_r31->unk24 = -var_r31->unk24 - 0.3f; + if (var_r31->unk24 < 0.0f) { + var_r31->unk24 = 0.0f; + } + temp_r26 = 80.0f * (2.0f * ((sp8.x - var_r31->unk08.x) / 15.0f) - rand8() / 255.0f); + var_r31->unk20 = 8.0 * sin(temp_r26 * M_PI / 180.0); + var_r31->unk28 = 8.0 * cos(temp_r26 * M_PI / 180.0); + } + var_r31->unk24 -= 0.35f; + if ((var_r31->unk14.x -= 25.5f) < 0.0f) { + var_r31->unk14.x = 0.0f; + } + if ((var_r31->unk14.y -= 36.42857f) < 0.0f) { + var_r31->unk14.y = 0.0f; + } + if ((var_r31->unk14.z -= 63.75f) < 0.0f) { + var_r31->unk14.z = 0.0f; + } + var_r31->unk40.r = var_r31->unk14.x; + var_r31->unk40.g = var_r31->unk14.y; + var_r31->unk40.b = var_r31->unk14.z; + if (var_r31->unk40.r == 0 && var_r31->unk40.g == 0 && var_r31->unk40.b == 0) { + var_r31->unk2C = 0.0f; + } + } +} diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index e2958ca9..4a958585 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -9,6 +9,7 @@ #include "game/board/space.h" #include "game/object.h" #include "game/objsub.h" +#include "game/sprite.h" #include "game/board/player.h" #include "math.h" #include "game/hsfman.h" @@ -908,7 +909,7 @@ void fn_1_BBF8(void) { void fn_1_BC7C(s16 arg0) { ParticleData* particle; - lbl_1_bss_190 = HuSprAnimRead(HuDataSelHeapReadNum(0x120000, 0x10000000, 2)); + lbl_1_bss_190 = HuSprAnimReadFile(0x120000); HuSprAnimLock(lbl_1_bss_190); lbl_1_data_4E4 = Hu3DParticleCreate(lbl_1_bss_190, 100); Hu3DParticleHookSet(lbl_1_data_4E4, fn_1_BE30); diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index 595c8a8a..4565ab68 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -216,26 +216,26 @@ s32 fn_1_1650(s32 arg0) { return 1; } -s32 lbl_1_data_290[] = { //TODO: make sure this actually uses DATA_MAKE_NUM macro - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x62), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x62), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x62), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x62), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x62), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x62), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x62), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x62), +s32 lbl_1_data_290[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 98), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) }; -s32 lbl_1_data_2B0[] = { //TODO: make sure this actually uses DATA_MAKE_NUM macro - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x33), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x33), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x33), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x33), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x33), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x33), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x33), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x33), +s32 lbl_1_data_2B0[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) }; s32 lbl_1_data_2D0[] = { diff --git a/src/game/board/item.c b/src/game/board/item.c index 914f74de..df42dc9a 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -1,6 +1,7 @@ #include "game/board/item.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/data.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfanim.h" @@ -8,6 +9,7 @@ #include "game/objsub.h" #include "game/pad.h" #include "game/process.h" +#include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" #include "game/board/audio.h" @@ -51,8 +53,6 @@ typedef struct { } UnkGenieCameraStruct; // Size 0x1C extern u32 frandmod(u32); -extern void BoardBowserSuitInit(s32); -extern s16 BoardBowserSuitPlayerModelGet(void); static void ItemProcess(void); static void RestoreProcess(void); @@ -111,7 +111,10 @@ static AnimData *genieParticleAnim; static s16 geniePlayerMot[3]; static Process *itemProc; -s32 lbl_801D37A0[2] = { 0x00070075, -1 }; +s32 lbl_801D37A0[2] = { + DATA_MAKE_NUM(DATADIR_BOARD, 117), + -1 +}; static void (*itemFuncTbl[])(void) = { ExecItemMini, @@ -148,20 +151,20 @@ static void (*itemRestoreFuncTbl[])(void) = { }; static s32 itemMdlTbl[] = { - 0x0007006D, - 0x0007006E, - 0x0007006F, - 0x00070070, - 0x00070071, - 0x00070072, - 0x00070073, - 0x00070074, - 0x00070076, - 0x00070077, - 0x00070078, - 0x00070079, - 0x0007007A, - 0x0007007B + DATA_MAKE_NUM(DATADIR_BOARD, 109), + DATA_MAKE_NUM(DATADIR_BOARD, 110), + DATA_MAKE_NUM(DATADIR_BOARD, 111), + DATA_MAKE_NUM(DATADIR_BOARD, 112), + DATA_MAKE_NUM(DATADIR_BOARD, 113), + DATA_MAKE_NUM(DATADIR_BOARD, 114), + DATA_MAKE_NUM(DATADIR_BOARD, 115), + DATA_MAKE_NUM(DATADIR_BOARD, 116), + DATA_MAKE_NUM(DATADIR_BOARD, 118), + DATA_MAKE_NUM(DATADIR_BOARD, 119), + DATA_MAKE_NUM(DATADIR_BOARD, 120), + DATA_MAKE_NUM(DATADIR_BOARD, 121), + DATA_MAKE_NUM(DATADIR_BOARD, 122), + DATA_MAKE_NUM(DATADIR_BOARD, 123) }; static s32 forceMoveSfxTbl[] = { @@ -169,14 +172,14 @@ static s32 forceMoveSfxTbl[] = { }; static s32 callMotTbl[] = { - 0x005F0052, - 0x001A0052, - 0x006D0052, - 0x008A0052, - 0x00850052, - 0x00110052, - 0x000D0052, - 0x00810052 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 82), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 82), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 82), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 82), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 82), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 82), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 82), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 82) }; static char *callHookTbl[] = { @@ -191,32 +194,32 @@ static char *callHookTbl[] = { }; static s32 callAttackMotTbl[] = { - 0x0075001F, - 0x00760005, - 0x0077001D, - 0x00780009, - 0x00790007, - 0x007A0013 + DATA_MAKE_NUM(DATADIR_W01, 31), + DATA_MAKE_NUM(DATADIR_W02, 5), + DATA_MAKE_NUM(DATADIR_W03, 29), + DATA_MAKE_NUM(DATADIR_W04, 9), + DATA_MAKE_NUM(DATADIR_W05, 7), + DATA_MAKE_NUM(DATADIR_W06, 19) }; static s32 callAttackMotTbl2[] = { - 0x00750020, - 0x00760006, - 0x0077001E, - 0x0078000A, - 0x00790008, - 0x007A0014 + DATA_MAKE_NUM(DATADIR_W01, 32), + DATA_MAKE_NUM(DATADIR_W02, 6), + DATA_MAKE_NUM(DATADIR_W03, 30), + DATA_MAKE_NUM(DATADIR_W04, 10), + DATA_MAKE_NUM(DATADIR_W05, 8), + DATA_MAKE_NUM(DATADIR_W06, 20) }; static s32 suitMotTbl[][2] = { - { 0x00040001, 0x00040002 }, - { 0x00040004, 0x00040005 }, - { 0x00040007, 0x00040008 }, - { 0x0004000A, 0x0004000B }, - { 0x0004000D, 0x0004000E }, - { 0x00040010, 0x00040011 }, - { 0x00040013, 0x00040014 }, - { 0x00040016, 0x00040017 } + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 1), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 2) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 4), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 5) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 7), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 8) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 10), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 11) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 13), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 14) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 16), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 17) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 20) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 22), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 23) } }; void BoardItemStart(s32 arg0, s32 arg1) { @@ -490,7 +493,7 @@ static Process *ItemShowProc(UnkItemShowProcStruct *arg0, Vec *arg1) { sp20.z += 50.0 * cos(sp14.y * M_PI / 180.0); sp20.x += 50.0 * sin(sp14.y * M_PI / 180.0); CharModelEffectCreate(1, &sp20); - HuPrcSleep(0xA); + HuPrcSleep(10); } if (suitMdl >= 0) { BoardModelVisibilitySet(suitMdl, 1); @@ -527,7 +530,7 @@ static s16 ItemGetTarget(void) { var_r28++; } } - HuWinMesMaxSizeGet(1, sp8, 0x12000E); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(18, 14)); temp_r29 = HuWinCreate(-10000.0f, -10000.0f, sp8[0], sp8[1], 0); if (!GWPlayer[currItemRestore].com) { winData[temp_r29].active_pad = (1 << GWPlayer[currItemRestore].port); @@ -535,7 +538,7 @@ static s16 ItemGetTarget(void) { for (var_r31 = 0; var_r31 < var_r27; var_r31++) { HuWinInsertMesSet(temp_r29, GWPlayerCfg[sp20[var_r31]].character, var_r31); } - HuWinMesSet(temp_r29, 0x12000E); + HuWinMesSet(temp_r29, MAKE_MESSID(18, 14)); if (GWPlayer[currItemRestore].com) { var_r26 = 0xF; } else { @@ -623,7 +626,7 @@ static void ExecItemMini(void) { omVibrate(currItemRestore, 90, 6, 6); HuAudFXPlay(0x313); ItemSizeSet(1); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -640,7 +643,7 @@ static void ExecItemMega(void) { omVibrate(currItemRestore, 90, 4, 2); HuAudFXPlay(0x311); ItemSizeSet(2); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -657,7 +660,7 @@ static void ExecItemMiniSuper(void) { omVibrate(currItemRestore, 90, 4, 2); HuAudFXPlay(0x313); ItemSizeSet(1); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -674,7 +677,7 @@ static void ExecItemMegaSuper(void) { omVibrate(currItemRestore, 90, 0xC, 0); HuAudFXPlay(0x311); ItemSizeSet(2); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -707,13 +710,13 @@ static void ExecItemHammer(void) { BoardModelScaleSetV(suitMdl, &sp60); sp6C.x = sp6C.y = sp6C.z = 0.0f; BoardUiInlineFunc01(&sp6C); - HuWinMesMaxSizeGet(1, sp10, 0x120011); + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(18, 17)); temp_r28 = HuWinCreate(-10000.0f, 320.0f, sp10[0], sp10[1], 0); - HuWinMesSet(temp_r28, 0x120011); + HuWinMesSet(temp_r28, MAKE_MESSID(18, 17)); HuWinBGTPLvlSet(temp_r28, 0.0f); HuWinMesSpeedSet(temp_r28, 0); if (GWPlayer[currItemRestore].com) { - var_r26 = frandmod(0x78) + 0x1E; + var_r26 = frandmod(120) + 30; } for (i = 1; i <= 0x12C; i++) { if (i % 10 == 0) { @@ -740,7 +743,7 @@ static void ExecItemHammer(void) { BoardModelAttrSet(suitMdl, 0x40000002); HuAudFXPlay(0x316); HuWinKill(temp_r28); - omVibrate(temp_r27, 0xC, 6, 6); + omVibrate(temp_r27, 12, 6, 6); if (var_r30 != 0) { BoardPlayerAutoSizeSet(temp_r27, 2); } else { @@ -806,11 +809,11 @@ static void ExecItemPipe(void) { BoardModelPosSetV(sp30[var_r31], &spE4[var_r31]); } if (sp58[0] == sp58[1]) { - HuWinMesMaxSizeGet(1, sp48, 0x120012); + HuWinMesMaxSizeGet(1, sp48, MAKE_MESSID(18, 18)); temp_r28 = HuWinCreate(-10000.0f, -10000.0f, sp48[0], sp48[1], 0); - HuWinMesSet(temp_r28, 0x120012); + HuWinMesSet(temp_r28, MAKE_MESSID(18, 18)); HuWinMesWait(temp_r28); - HuPrcSleep(0xB4); + HuPrcSleep(180); HuWinKill(temp_r28); } else { BoardUiInlineFunc03(sp2C[1]); @@ -819,7 +822,7 @@ static void ExecItemPipe(void) { BoardModelVisibilitySet(sp30[var_r31], 1); BoardPlayerPosGet(sp2C[var_r31], &spCC[var_r31]); } - for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + for (var_r31 = 0; var_r31 < 60; var_r31++) { sp9C.y += 0.033333335f; for (var_r30 = 0; var_r30 < 2; var_r30++) { BoardModelScaleSetV(sp30[var_r30], &sp9C); @@ -832,7 +835,7 @@ static void ExecItemPipe(void) { for (var_r31 = 0; var_r31 < 2; var_r31++) { BoardModelScaleSetV(sp30[var_r31], &sp9C); } - HuPrcSleep(0xA); + HuPrcSleep(10); HuAudFXPlay(0x35A); omVibrate(sp2C[0], 0xC, 4, 2); var_f30 = 5.0f; @@ -859,7 +862,7 @@ static void ExecItemPipe(void) { HuPrcVSleep(); } WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x1E); + WipeCreate(2, 0, 30); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -885,7 +888,7 @@ static void ExecItemPipe(void) { BoardPlayerVoiceEnableSet(sp2C[var_r31], 4, 0); BoardModelVisibilitySet(BoardPlayerModelGet(sp2C[var_r31]), 0); } - WipeCreate(1, 0, 0x1E); + WipeCreate(1, 0, 30); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -944,7 +947,7 @@ static void ExecItemPipe(void) { BoardModelVoiceEnableSet(BoardPlayerModelGet(sp2C[1]), 6, 0); CharModelLayerSetAll(2); BoardPlayerIdleSet(sp2C[0]); - for (var_r31 = 0; var_r31 < 0x2D; var_r31++) { + for (var_r31 = 0; var_r31 < 45; var_r31++) { sp9C.y -= 0.044444446f; for (var_r30 = 0; var_r30 < 2; var_r30++) { BoardModelScaleSetV(sp30[var_r30], &sp9C); @@ -955,7 +958,7 @@ static void ExecItemPipe(void) { BoardModelVisibilitySet(sp30[var_r31], 0); } BoardUiInlineFunc03(sp2C[0]); - BoardWinCreate(2, 0x12001D, -1); + BoardWinCreate(2, MAKE_MESSID(18, 29), -1); BoardWinInsertMesSet(GWPlayerCfg[sp2C[0]].character, 0); BoardWinInsertMesSet(GWPlayerCfg[sp2C[1]].character, 1); BoardWinWait(); @@ -1105,7 +1108,7 @@ static void ExecItemSwap(void) { PSVECScale(&sp6C, &sp6C, 0.033333335f); PSVECSubtract(&sp78, &sp180[var_r31], &sp60); PSVECScale(&sp60, &sp60, 0.033333335f); - for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + for (var_r30 = 0; var_r30 < 30; var_r30++) { BoardModelPosSetV(sp54[var_r31], &sp1A4[var_r31]); BoardModelPosSetV(sp54[var_r31 + 3], &sp180[var_r31]); PSVECAdd(&sp1A4[var_r31], &sp6C, &sp1A4[var_r31]); @@ -1117,9 +1120,9 @@ static void ExecItemSwap(void) { BoardModelPosSetV(sp54[var_r31], &sp1A4[var_r31]); BoardModelPosSetV(sp54[var_r31 + 3], &sp180[var_r31]); } - omVibrate(currItemRestore, 0xB4, 6, 6); - omVibrate(temp_r24, 0xB4, 6, 6); - for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + omVibrate(currItemRestore, 180, 6, 6); + omVibrate(temp_r24, 180, 6, 6); + for (var_r31 = 0; var_r31 < 60; var_r31++) { for (var_r30 = 0; var_r30 < var_r28 / 2; var_r30++) { sp6C = sp1A4[var_r30]; sp6C.x += 3.0 * sin((frand() % 360) * M_PI / 180.0); @@ -1154,7 +1157,7 @@ static void ExecItemSwap(void) { PSVECScale(&sp6C, &sp6C, 0.033333335f); PSVECSubtract(&spB4, &sp180[var_r31], &sp60); PSVECScale(&sp60, &sp60, 0.033333335f); - for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + for (var_r30 = 0; var_r30 < 30; var_r30++) { BoardModelPosSetV(sp54[var_r31], &sp1A4[var_r31]); BoardModelPosSetV(sp54[var_r31 + 3], &sp180[var_r31]); PSVECAdd(&sp1A4[var_r31], &sp6C, &sp1A4[var_r31]); @@ -1211,7 +1214,7 @@ static void ExecItemSpark(void) { s32 i; (void)106.0; - temp_r30 = BoardModelCreate(0x70067, NULL, 0); + temp_r30 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 103), NULL, 0); BoardModelLayerSet(temp_r30, 3); BoardModelVisibilitySet(temp_r30, 0); HuAudFXPlay(0x350); @@ -1271,7 +1274,7 @@ static void ExecItemSpark(void) { HuPrcVSleep(); } for (i = 0; i < 4; i++) { - omVibrate(i, 0xC, 4, 2); + omVibrate(i, 12, 4, 2); } HuAudFXPlay(0x31C); BoardModelVisibilitySet(temp_r30, 1); @@ -1280,7 +1283,7 @@ static void ExecItemSpark(void) { HuPrcVSleep(); } var_f31 = 255.0f; - for (i = 0; i < 0x2D; i++) { + for (i = 0; i < 45; i++) { var_f31 -= 5.6666665f; BoardModelAlphaSet(suitMdl, var_f31); HuPrcVSleep(); @@ -1300,8 +1303,8 @@ static void ExecItemLight(void) { HuAudFXPlay(0x350); ItemShowProc(NULL, NULL); - BoardWinCreateChoice(2, 0x12000F, -1, 0); - BoardWinInsertMesSet(0x80008, 3); + BoardWinCreateChoice(2, DATA_MAKE_NUM(DATADIR_EFFECT, 15), -1, 0); + BoardWinInsertMesSet(MAKE_MESSID(8, 8), 3); if (GWPlayer[currItemRestore].com) { BoardComKeySetRight(); } @@ -1362,9 +1365,9 @@ static void ExecItemWhistle(void) { var_f31 = 0.003921569f * (frand() & 0xFF) * 360.0f; spA8.x = spA8.y = spA8.z = 0.5f; for (var_r31 = 0; var_r31 < 4; var_r31++) { - sp20[var_r31] = BoardModelCreate(0x20027, NULL, 1); + sp20[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 39), NULL, 1); BoardModelLayerSet(sp20[var_r31], 2); - temp_r17 = BoardModelMotionCreate(sp20[var_r31], 0x20028); + temp_r17 = BoardModelMotionCreate(sp20[var_r31], DATA_MAKE_NUM(DATADIR_BGUEST, 40)); BoardModelMotionStart(sp20[var_r31], temp_r17, 0x40000001); sp28[var_r31] = 120.0f; spF0[var_r31].x = spB4.x + 120.0 * sin(var_f31 * M_PI / 180.0); @@ -1397,7 +1400,7 @@ static void ExecItemWhistle(void) { PSVECScale(&sp78, &sp78, 0.03448276f); BoardPlayerMotionStart(currItemRestore, temp_r23, 0); BoardPlayerMotionTimeSet(currItemRestore, 1.0f); - for (var_r31 = 0; var_r31 < 0x1D; var_r31++) { + for (var_r31 = 0; var_r31 < 29; var_r31++) { sp90.y += sp78.y; sp90.z += sp78.z; BoardModelPosSetV(suitMdl, &sp90); @@ -1418,7 +1421,7 @@ static void ExecItemWhistle(void) { HuPrcVSleep(); } WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x3C); + WipeCreate(2, 0, 60); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -1433,7 +1436,7 @@ static void ExecItemWhistle(void) { for (var_r31 = 0; var_r31 < 4; var_r31++) { BoardModelVisibilitySet(sp20[var_r31], 1); } - WipeCreate(1, 0, 0x3C); + WipeCreate(1, 0, 60); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -1459,7 +1462,7 @@ static void ExecItemWhistle(void) { if (var_r27 == 0) { var_r27 = 1; for (var_r29 = 0; var_r29 < 4; var_r29++) { - omVibrate(var_r29, 0xC, 6, 6); + omVibrate(var_r29, 12, 6, 6); } HuAudFXPlay(0x321); } @@ -1478,7 +1481,7 @@ static void ExecItemWhistle(void) { } BoardModelMotionShiftSet(temp_r28, temp_r20, 0.0f, 5.0f, 0x40000001); HuAudFXPlay(0x322); - for (var_r29 = 0; var_r29 < 0xB4; var_r29++) { + for (var_r29 = 0; var_r29 < 180; var_r29++) { for (var_r31 = 0; var_r31 < 4; var_r31++) { sp38[var_r31] += 4.0f; if (sp38[var_r31] >= 360.0f) { @@ -1495,14 +1498,14 @@ static void ExecItemWhistle(void) { } HuPrcVSleep(); } - for (var_r29 = 0; var_r29 < 0x14; var_r29++) { + for (var_r29 = 0; var_r29 < 20; var_r29++) { for (var_r31 = 0; var_r31 < 4; var_r31++) { spC0[var_r31].y += 4.5f; BoardModelRotSetV(sp20[var_r31], &spC0[var_r31]); } HuPrcVSleep(); } - HuPrcSleep(0x1E); + HuPrcSleep(30); var_f30 = 35.0f; var_r26 = 0; for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -1536,8 +1539,8 @@ static void ExecItemWhistle(void) { BoardModelPosSetV(temp_r28, &sp9C); var_f30 *= 0.945f; if (sp9C.y >= 500.0f && var_r26 == 0) { - WipeCreate(2, 0, 0x2D); - BoardAudSeqFadeOut(0, 0x3E8); + WipeCreate(2, 0, 45); + BoardAudSeqFadeOut(0, 1000); var_r26 = 1; } } @@ -1572,15 +1575,15 @@ static void ExecItemBowser(void) { BoardBowserSuitInit(currItemRestore); suitMdl = BoardBowserSuitModelGet(); temp_r31 = BoardBowserSuitPlayerModelGet(); - suitMot[0] = BoardModelMotionCreate(suitMdl, 0x4001C); - suitMot[1] = BoardModelMotionCreate(suitMdl, 0x4001D); + suitMot[0] = BoardModelMotionCreate(suitMdl, DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 28)); + suitMot[1] = BoardModelMotionCreate(suitMdl, DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 29)); suitCommonMot[0] = BoardModelMotionCreate(temp_r31, suitMotTbl[GWPlayer[currItemRestore].character][0]); suitCommonMot[1] = BoardModelMotionCreate(temp_r31, suitMotTbl[GWPlayer[currItemRestore].character][1]); BoardModelVisibilitySet(temp_r31, 0); HuAudFXPlay(0x350); sp20.x = sp20.y = sp20.z = 0.3f; ItemShowProc(NULL, &sp20); - for (i = 0; i < 0x1E; i++) { + for (i = 0; i < 30; i++) { sp20.x += 0.023333333f; sp20.y += 0.023333333f; sp20.z += 0.023333333f; @@ -1624,8 +1627,8 @@ static void ExecItemBowser(void) { BoardModelMotionShiftSet(temp_r31, suitCommonMot[0], 0.0f, 5.0f, 0); HuPrcSleep(0x28); HuAudPlayerVoicePlay(currItemRestore, 0x129); - omVibrate(currItemRestore, 0xC, 4, 2); - HuPrcSleep(0x3C); + omVibrate(currItemRestore, 12, 4, 2); + HuPrcSleep(60); BoardModelMotionShiftSet(suitMdl, 0, 0.0f, 5.0f, 0x40000001); HuPrcKill(NULL); while (1) { @@ -1634,8 +1637,8 @@ static void ExecItemBowser(void) { } static s32 booMotTbl[3] = { - 0x00020018, - 0x00020016, + DATA_MAKE_NUM(DATADIR_BGUEST, 24), + DATA_MAKE_NUM(DATADIR_BGUEST, 22), -1 }; @@ -1719,9 +1722,9 @@ static void ExecItemBooBall(void) { s32 var_r30; s32 var_r31; - BoardAudSeqPause(0, 1, 0x3E8); + BoardAudSeqPause(0, 1, 1000); suitMdl = BoardBooCreate(currItemRestore, &sp74); - booBallMdl = BoardModelCreate(0x20012, booMotTbl, 0); + booBallMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 18), booMotTbl, 0); BoardModelMotionStart(booBallMdl, 1, 0x40000001); BoardModelLayerSet(booBallMdl, 2); BoardModelAttrSet(booBallMdl, 2); @@ -1743,11 +1746,11 @@ static void ExecItemBooBall(void) { sp1C = BoardUiInlineFunc05(&sp80); BoardMusStart(1, 1, 0x7F, 0); HuAudFXPlay(0x4C); - BoardWinCreate(2, 0x120015, 3); + BoardWinCreate(2, MAKE_MESSID(18, 21), 3); BoardWinWait(); BoardWinKill(); if (BoardPlayerCoinsGet(currItemRestore) < 5) { - BoardWinCreate(2, 0x120016, 3); + BoardWinCreate(2, MAKE_MESSID(18, 22), 3); BoardWinWait(); BoardWinKill(); } else { @@ -1764,7 +1767,7 @@ static void ExecItemBooBall(void) { } } do { - BoardWinCreateChoice(4, 0x120018, 3, 0); + BoardWinCreateChoice(4, MAKE_MESSID(18, 24), 3, 0); BoardWinAttrSet(0x10); if (BoardPlayerCoinsGet(currItemRestore) < 50 || var_r28 == 0) { BoardWinChoiceDisable(1); @@ -1804,40 +1807,40 @@ static void ExecItemBooBall(void) { ExecItemBooBallInlineFunc02(30); var_r29 = BoardBooStealValueGet(&spC, &spA); if (var_r29 == 0) { - var_r30 = 0x7000B; + var_r30 = MAKE_MESSID(7, 11); } else if (spA == 0) { - var_r30 = 0x70009; + var_r30 = MAKE_MESSID(7, 9); } else if (spA >= 1 && spA <= 3) { - var_r30 = 0x70008; + var_r30 = MAKE_MESSID(7, 8); } else if (spA >= 4 && spA <= 6) { - var_r30 = 0x70007; + var_r30 = MAKE_MESSID(7, 7); } else if (spA >= 7 && spA <= 8) { - var_r30 = 0x70006; + var_r30 = MAKE_MESSID(7, 6); } else { - var_r30 = 0x70005; + var_r30 = MAKE_MESSID(7, 5); } sprintf(booCoinStr, "%d", spC); HuAudFXPlay(0x4C); BoardWinCreate(2, var_r30, 3); - BoardWinInsertMesSet((u32) (booCoinStr), 0); + BoardWinInsertMesSet(MAKE_MESSID_PTR(booCoinStr), 0); BoardWinWait(); BoardWinKill(); BoardStatusShowSetAll(1); if (var_r29 != 0) { BoardPlayerMotionShiftSet(currItemRestore, 7, 0.0f, 8.0f, 0); - HuPrcSleep(0x1E); + HuPrcSleep(30); for (var_r31 = 0; var_r31 < spC; var_r31++) { BoardPlayerCoinsAdd(currItemRestore, 1); HuAudFXPlay(7); HuPrcVSleep(); } BoardPlayerMotionEndWait(currItemRestore); - HuPrcSleep(0xA); + HuPrcSleep(10); BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 8.0f, 0x40000001); } break; case 1: - for (var_r31 = 0; var_r31 < 0x32; var_r31++) { + for (var_r31 = 0; var_r31 < 50; var_r31++) { BoardPlayerCoinsAdd(currItemRestore, -1); HuAudFXPlay(0xE); HuPrcSleep(1); @@ -1856,17 +1859,17 @@ static void ExecItemBooBall(void) { BoardCameraMotionWait(); ExecItemBooBallInlineFunc02(30); if (var_r29 != 0) { - var_r30 = 0x7000A; + var_r30 = MAKE_MESSID(7, 10); } else { - var_r30 = 0x7000B; + var_r30 = MAKE_MESSID(7, 11); } HuAudFXPlay(0x4C); BoardWinCreate(2, var_r30, 3); BoardWinWait(); BoardWinKill(); BoardStatusShowSetAll(1); - BoardAudSeqFadeOut(1, 0x3E8); - HuPrcSleep(0x17); + BoardAudSeqFadeOut(1, 1000); + HuPrcSleep(23); if (var_r29 != 0) { BoardPlayerVoiceEnableSet(currItemRestore, 7, 0); sp18 = HuAudSStreamPlay(6); @@ -1889,28 +1892,28 @@ static void ExecItemBooBall(void) { case 2: case -1: HuAudFXPlay(0x4C); - BoardWinCreate(2, 0x120017, 3); + BoardWinCreate(2, MAKE_MESSID(18, 23), 3); BoardWinWait(); BoardWinKill(); break; } } while (var_r29 == 3); } - BoardAudSeqFadeOut(1, 0x3E8); + BoardAudSeqFadeOut(1, 1000); HuPrcKill(sp1C); BoardModelPosGet(booBallMdl, &booBallPos); HuAudFXPlay(0x34F); ExecItemBooBallInlineFunc01(60); HuPrcKill(temp_r17); - BoardAudSeqPause(0, 0, 0x3E8); + BoardAudSeqPause(0, 0, 1000); CharModelLayerSetAll(3); BoardModelPosGet(suitMdl, &sp74); CharModelEffectCreate(1, &sp74); HuAudFXPlay(0x351); - HuPrcSleep(0xA); + HuPrcSleep(10); BoardModelKill(suitMdl); BoardModelKill(booBallMdl); - HuPrcSleep(0xF); + HuPrcSleep(15); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -2111,36 +2114,36 @@ static void GenieCameraCalc(UnkGenieCameraStruct *arg0, s32 arg1, float arg2, Ve } static s32 armUpMotTbl[] = { - 0x005F005C, - 0x001A005C, - 0x006D005C, - 0x008A005C, - 0x0085005C, - 0x0011005C, - 0x000D005C, - 0x0081005C + DATA_MAKE_NUM(DATADIR_MARIOMOT, 92), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 92), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 92), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 92), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 92), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 92), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 92), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 92) }; static s32 scareMotTbl[] = { - 0x005F001C, - 0x001A001C, - 0x006D001C, - 0x008A001C, - 0x0085001C, - 0x0011001C, - 0x000D001C, - 0x0081001C + DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28) }; static s32 impactMotTbl[] = { - 0x005F005E, - 0x001A005E, - 0x006D005E, - 0x008A005E, - 0x0085005E, - 0x0011005E, - 0x000D005E, - 0x0081005E + DATA_MAKE_NUM(DATADIR_MARIOMOT, 94), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 94), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 94), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 94), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 94), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 94), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 94), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 94) }; static UnkGenieCameraStruct cameraDataTbl[] = { @@ -2158,9 +2161,9 @@ static UnkGenieCameraStruct cameraDataTbl[] = { }; static s32 genieMotTbl[] = { - 0x0007007D, - 0x0007007E, - 0x0007007F, + DATA_MAKE_NUM(DATADIR_BOARD, 125), + DATA_MAKE_NUM(DATADIR_BOARD, 126), + DATA_MAKE_NUM(DATADIR_BOARD, 127), -1 }; @@ -2190,16 +2193,16 @@ static void GenieSceneExec(void) { BoardStatusShowSet(i, 0); } BoardLightResetExec(); - temp_r25 = BoardModelCreate(0x70080, NULL, 0); + temp_r25 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 128), NULL, 0); sp50.x = sp50.y = sp50.z = 0.0f; BoardModelPosSetV(temp_r25, &sp50); BoardModelCameraSet(temp_r25, 2); Hu3DModelAmbSet(BoardModelIDGet(temp_r25), 1.0f, 1.0f, 1.0f); - temp_r24 = BoardModelCreate(0x70081, NULL, 0); + temp_r24 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 129), NULL, 0); BoardModelPosSetV(temp_r24, &sp50); BoardModelCameraSet(temp_r24, 2); Hu3DModelAmbSet(BoardModelIDGet(temp_r24), 1.0f, 1.0f, 1.0f); - temp_r28 = BoardModelCreate(0x7007C, genieMotTbl, 0); + temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 124), genieMotTbl, 0); sp50.x = sp50.y = 0.0f; sp50.z = 600.0f; sp44.x = sp44.z = 0.0f; @@ -2244,7 +2247,7 @@ static void GenieSceneExec(void) { Hu3DModelPosSet(temp_r27, booCamPos.x, booCamPos.y, booCamPos.z - 175.0f); temp_r23 = Hu3DData[temp_r27].unk_120; temp_r23->unk_02 = 1; - WipeCreate(1, 0, 0x2D); + WipeCreate(1, 0, 45); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -2252,18 +2255,18 @@ static void GenieSceneExec(void) { while (temp_r23->unk_02 != 0) { HuPrcVSleep(); } - HuPrcSleep(0x2D); + HuPrcSleep(45); HuAudPlayerVoicePlay(currItemRestore, 0x128); BoardPlayerMotionStart(currItemRestore, geniePlayerMot[1], 0); BoardPlayerMotionEndWait(currItemRestore); - HuPrcSleep(0x19); + HuPrcSleep(25); Hu3DModelKill(temp_r27); - for (i = 0; i < 0xA; i++) { + for (i = 0; i < 10; i++) { genieFov += 4.5f; HuPrcVSleep(); } genieFov = 60.0f; - HuPrcSleep(0x5A); + HuPrcSleep(90); var_f31 = 0.0f; var_r26 = 0; while (1) { @@ -2279,7 +2282,7 @@ static void GenieSceneExec(void) { HuPrcVSleep(); } GenieCameraCalc(&cameraDataTbl[0], var_r26, 1.0f, &booCamPos, &booCamUp); - HuPrcSleep(0x96); + HuPrcSleep(150); BoardPlayerIdleSet(currItemRestore); sp2C = booCamPos; sp20 = booCamUp; @@ -2290,7 +2293,7 @@ static void GenieSceneExec(void) { booCamPos.y = booCamUp.y + 950.0f; booCamPos.z = booCamUp.z + cos(-5 * M_PI / 9) * 1100.0; HuAudFXPlay(0x356); - BoardWinCreate(2, 0x12001B, -1); + BoardWinCreate(2, MAKE_MESSID(18, 27), -1); BoardWinWait(); BoardWinKill(); booCamUp = sp20; @@ -2323,7 +2326,7 @@ static void GenieSceneExec(void) { BoardModelPosSetV(temp_r28, &sp50); booCamUp.y = sp38.y + 100.0f; BoardModelMotionStart(temp_r28, 2, 0); - omVibrate(currItemRestore, 0xC, 0xC, 0); + omVibrate(currItemRestore, 12, 0xC, 0); booCamUp.y = 500.0f; HuAudFXPlay(0x35B); HuAudFXPlay((GWPlayer[currItemRestore].character << 6) + 0x123); @@ -2341,8 +2344,8 @@ static void GenieSceneExec(void) { } HuPrcVSleep(); } - WipeCreate(2, 0, 0x2D); - BoardAudSeqFadeOut(1, 0x3E8); + WipeCreate(2, 0, 45); + BoardAudSeqFadeOut(1, 1000); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -2379,7 +2382,7 @@ static void ExecItemGenie(void) { suitMdl = BoardModelCreate(itemMdlTbl[currItem], NULL, 1); BoardModelLayerSet(suitMdl, 2); - genieParticleAnim = HuSprAnimRead(HuDataSelHeapReadNum(0x70069, MEMORY_DEFAULT_NUM, HEAP_DATA)); + genieParticleAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_BOARD, 105)); HuSprAnimLock(genieParticleAnim); geniePlayerMot[0] = BoardPlayerMotionCreate(currItemRestore, armUpMotTbl[GWPlayer[currItemRestore].character]); geniePlayerMot[1] = BoardPlayerMotionCreate(currItemRestore, scareMotTbl[GWPlayer[currItemRestore].character]); @@ -2396,11 +2399,11 @@ static void ExecItemGenie(void) { HuAudFXPlay(0x323); var_r30 = 0; while (1) { - if (var_r30 == 0x69) { + if (var_r30 == 105) { BoardPlayerMotionStart(currItemRestore, geniePlayerMot[0], 0); } BoardModelRotGet(suitMdl, &spC); - if (90.0f - spC.y <= sp24.unk14 && 90.0f - spC.y >= 0.0f && var_r30 >= 0x78) { + if (90.0f - spC.y <= sp24.unk14 && 90.0f - spC.y >= 0.0f && var_r30 >= 120) { break; } HuPrcVSleep(); @@ -2418,13 +2421,13 @@ static void ExecItemGenie(void) { BoardModelPosGet(suitMdl, &spC); Hu3DModelPosSet(temp_r31, spC.x, spC.y, spC.z); sp8 = Hu3DData[temp_r31].unk_120; - omVibrate(currItemRestore, 0xB5, 6, 6); - HuPrcSleep(0x87); - BoardAudSeqPause(0, 1, 0x3E8); + omVibrate(currItemRestore, 181, 6, 6); + HuPrcSleep(135); + BoardAudSeqPause(0, 1, 1000); HuAudFXStop(temp_r25); HuAudFXPauseAll(1); WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(2, 0, 0x2D); + WipeCreate(2, 0, 45); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -2444,8 +2447,8 @@ static void ExecItemGenie(void) { BoardPlayerPosSetV(currItemRestore, &spC); BoardCameraMotionWait(); BoardCameraMoveSet(1); - WipeCreate(1, 0, 0x2D); - HuPrcSleep(0xF); + WipeCreate(1, 0, 45); + HuPrcSleep(15); BoardAudSeqPause(0, 0, 1000); while (WipeStatGet() != 0) { HuPrcVSleep(); @@ -2467,7 +2470,7 @@ static void ExecItemGenie(void) { var_f31 += 1.0f; spC.y += var_f30; if (spC.y <= sp18.y) { - omVibrate(currItemRestore, 0xC, 6, 6); + omVibrate(currItemRestore, 12, 6, 6); spC.y = sp18.y; var_f29 = -var_f30 * 0.2f; if (fabs(var_f29) <= 5.0) { @@ -2626,19 +2629,19 @@ static void ExecItemBag(void) { sp3C.unk1C = 0; HuAudFXPlay(0x350); temp_r24 = ItemShowProc(&sp3C, NULL); - HuWinMesMaxSizeGet(1, sp10, 0x120014); + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(18, 20)); temp_r28 = HuWinCreate(-10000.0f, 320.0f, sp10[0], sp10[1], 0); - HuWinMesSet(temp_r28, 0x120014); + HuWinMesSet(temp_r28, MAKE_MESSID(18, 20)); HuWinBGTPLvlSet(temp_r28, 0.0f); HuWinMesSpeedSet(temp_r28, 0); - var_r26 = frandmod(0x28) + 0x1E; + var_r26 = frandmod(40) + 30; var_r30 = 0; sp24.x = sp24.y = sp24.z = 0.0f; while (var_r30 < temp_r27) { if (GWPlayerCfg[currItemRestore].iscom == 1) { if (--var_r26 == 0) { var_r25 = 0x100; - var_r26 = frandmod(0x28) + 0x1E; + var_r26 = frandmod(40) + 30; } } else { var_r25 = HuPadBtnDown[temp_r23]; @@ -2665,7 +2668,7 @@ static void ExecItemBag(void) { HuPrcChildWatch(); BoardPlayerItemAdd(currItemRestore, itemBagItems[var_r30]); BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 10.0f, 0x40000001); - HuPrcSleep(0xA); + HuPrcSleep(10); var_r30++; } } @@ -2674,13 +2677,13 @@ static void ExecItemBag(void) { CharModelLayerSetAll(3); CharModelEffectCreate(1, &sp30); HuAudFXPlay(0x351); - HuPrcSleep(0xA); + HuPrcSleep(10); HuPrcKill(temp_r24); BoardModelKill(suitMdl); for (i = 0; i < temp_r27; i++) { BoardModelKill(sp8[i]); } - HuPrcSleep(0x1E); + HuPrcSleep(30); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -2738,7 +2741,7 @@ static void RestoreItemBowser(void) { s16 temp_r29; s16 i; - temp_r31 = BoardModelCreate(0x70063, NULL, 0); + temp_r31 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0); BoardModelVisibilitySet(temp_r31, 0); BoardModelLayerSet(temp_r31, 3); BoardPlayerPosGet(currItemRestore, &sp14); @@ -2752,12 +2755,12 @@ static void RestoreItemBowser(void) { temp_r29 = BoardBowserSuitPlayerModelGet(); BoardModelMotionShiftSet(suitMdl, suitMot[0], 0.0f, 5.0f, 0); BoardModelMotionShiftSet(temp_r29, suitCommonMot[0], 0.0f, 5.0f, 0); - HuPrcSleep(0x28); + HuPrcSleep(40); HuAudPlayerVoicePlay(currItemRestore, 0x129); - HuPrcSleep(0x14); + HuPrcSleep(20); HuAudFXPlay(0x32B); BoardModelVisibilitySet(temp_r31, 1); - for (i = 0; i < 0x3C; i++) { + for (i = 0; i < 60; i++) { sp20.x += 0.15f; sp20.y += 0.15f; sp20.z += 0.15f; @@ -2766,14 +2769,14 @@ static void RestoreItemBowser(void) { } sp20.x = sp20.y = sp20.z = 9.0f; BoardModelScaleSetV(temp_r31, &sp20); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuAudFXPlay(0x313); BoardModelHookReset(suitMdl); BoardBowserSuitKill(currItemRestore); sp8.x = sp8.y = sp8.z = 1.0f; BoardPlayerScaleSetV(currItemRestore, &sp8); BoardModelVisibilitySet(BoardPlayerModelGet(currItemRestore), 1); - for (i = 0; i < 0x3C; i++) { + for (i = 0; i < 60; i++) { sp20.x -= 0.15f; sp20.y -= 0.15f; sp20.z -= 0.15f; diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index 188ebce5..937ba7c6 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -882,7 +882,7 @@ static void ExecBallGame(void) { DATA_MAKE_NUM(DATADIR_WARIOMOT, 29), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 29), DATA_MAKE_NUM(DATADIR_DAISYMOT, 29), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 29), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 29) }; temp_r27 = GWSystem.player_curr;