Merge pull request #460 from gamemasterplc/pal
Port early board TUs to PAL
This commit is contained in:
commit
8cbbbb8dd8
17 changed files with 1660 additions and 1309 deletions
|
|
@ -3611,8 +3611,8 @@ pickSpr = .rodata:0x8011DFD0; // type:object size:0x20 scope:local
|
|||
handMdl = .rodata:0x8011DFF0; // type:object size:0x20 scope:local
|
||||
ticketSpr = .rodata:0x8011E010; // type:object size:0x10 scope:local
|
||||
lbl_8011E020 = .rodata:0x8011E020; // type:object size:0x20 data:4byte
|
||||
lbl_8011E040 = .rodata:0x8011E040; // type:object size:0x24
|
||||
lbl_8011E064 = .rodata:0x8011E064; // type:object size:0x4C
|
||||
starMesTbl1 = .rodata:0x8011E040; // type:object size:0x24 scope:local
|
||||
starMesTbl2 = .rodata:0x8011E064; // type:object size:0x48 scope:local
|
||||
lbl_8011E0B0 = .rodata:0x8011E0B0; // type:object size:0x10 data:4byte
|
||||
lbl_8011E0C0 = .rodata:0x8011E0C0; // type:object size:0x54 data:4byte
|
||||
lbl_8011E118 = .rodata:0x8011E118; // type:object size:0x38 data:4byte
|
||||
|
|
@ -5005,7 +5005,7 @@ itemPickupMdlId = .sdata:0x801D3790; // type:object size:0x2 scope:local data:2b
|
|||
yourTurnSprGrp = .sdata:0x801D3792; // type:object size:0x2 scope:local data:2byte
|
||||
jumpMot = .sdata:0x801D3798; // type:object size:0x2 scope:local data:2byte
|
||||
starMdl = .sdata:0x801D379A; // type:object size:0x2 scope:local data:2byte
|
||||
lbl_801D37A0 = .sdata:0x801D37A0; // type:object size:0x8
|
||||
itemMotTbl = .sdata:0x801D37A0; // type:object size:0x8 scope:local
|
||||
lbl_801D37A8 = .sdata:0x801D37A8; // type:object size:0x8
|
||||
jumpMot = .sdata:0x801D37B0; // type:object size:0x2 scope:local data:2byte
|
||||
scareMot = .sdata:0x801D37B2; // type:object size:0x2 scope:local data:2byte
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ symbols: config/GMPP01_00/symbols.txt
|
|||
splits: config/GMPP01_00/splits.txt
|
||||
quick_analysis: false # Faster re-runs after initial analysis
|
||||
mw_comment_version: 10 # GC 2.6 linker
|
||||
force_active: [__register_global_object]
|
||||
force_active: [__register_global_object, lbl_801D40D0]
|
||||
|
||||
detect_objects: true
|
||||
detect_strings: true
|
||||
|
|
|
|||
|
|
@ -315,3 +315,180 @@ game/sreset.c:
|
|||
.bss start:0x801B97E0 end:0x801BAB80
|
||||
.sdata start:0x801F0A00 end:0x801F0A18
|
||||
.sbss start:0x801F1270 end:0x801F1288
|
||||
|
||||
game/board/main.c:
|
||||
.text start:0x8005AEF0 end:0x80061D78
|
||||
.rodata start:0x8011DB80 end:0x8011DBB0
|
||||
.data start:0x80156B20 end:0x80156C20
|
||||
.bss start:0x801BAB80 end:0x801BAD08
|
||||
.sdata start:0x801F0A18 end:0x801F0A28
|
||||
.sbss start:0x801F1288 end:0x801F12D8
|
||||
.sdata2 start:0x801F2508 end:0x801F25B8
|
||||
|
||||
game/board/player.c:
|
||||
.text start:0x80061D78 end:0x8006D0BC
|
||||
.rodata start:0x8011DBB0 end:0x8011DC80
|
||||
.data start:0x80156C20 end:0x80156E28
|
||||
.bss start:0x801BAD08 end:0x801BAD38
|
||||
.sdata start:0x801F0A28 end:0x801F0A88
|
||||
.sbss start:0x801F12D8 end:0x801F1310
|
||||
.sdata2 start:0x801F25B8 end:0x801F26C0
|
||||
|
||||
game/board/model.c:
|
||||
.text start:0x8006D0BC end:0x8006FB30
|
||||
.sbss start:0x801F1310 end:0x801F1320
|
||||
.sdata2 start:0x801F26C0 end:0x801F26D8
|
||||
|
||||
game/board/window.c:
|
||||
.text start:0x8006FB30 end:0x80070B30
|
||||
.rodata start:0x8011DC80 end:0x8011DCF0
|
||||
.data start:0x80156E28 end:0x80156E70
|
||||
.bss start:0x801BAD38 end:0x801BAD98
|
||||
.sdata start:0x801F0A88 end:0x801F0A90
|
||||
.sbss start:0x801F1320 end:0x801F1348
|
||||
.sdata2 start:0x801F26D8 end:0x801F26E8
|
||||
|
||||
game/board/audio.c:
|
||||
.text start:0x80070B30 end:0x8007103C
|
||||
.data start:0x80156E70 end:0x80156E88
|
||||
.sdata start:0x801F0A90 end:0x801F0A98
|
||||
.sbss start:0x801F1348 end:0x801F1350
|
||||
|
||||
game/board/com.c:
|
||||
.text start:0x8007103C end:0x80072750
|
||||
.data start:0x80156E88 end:0x80156F50
|
||||
.sdata start:0x801F0A98 end:0x801F0AA0
|
||||
.sdata2 start:0x801F26E8 end:0x801F2710
|
||||
|
||||
game/board/view.c:
|
||||
.text start:0x80072750 end:0x80073DD0
|
||||
.rodata start:0x8011DCF0 end:0x8011DD10
|
||||
.data start:0x80156F50 end:0x80157050
|
||||
.bss start:0x801BAD98 end:0x801BADB0
|
||||
.sdata start:0x801F0AA0 end:0x801F0AA8
|
||||
.sbss start:0x801F1350 end:0x801F1368
|
||||
.sdata2 start:0x801F2710 end:0x801F2780
|
||||
|
||||
game/board/space.c:
|
||||
.text start:0x80073DD0 end:0x80077888
|
||||
.data start:0x80157050 end:0x80157090
|
||||
.bss start:0x801BADB0 end:0x801C1E00
|
||||
.sdata start:0x801F0AA8 end:0x801F0AB0
|
||||
.sbss start:0x801F1368 end:0x801F13A0
|
||||
.sdata2 start:0x801F2780 end:0x801F2800
|
||||
|
||||
game/board/shop.c:
|
||||
.text start:0x80077888 end:0x8007A6B4
|
||||
.data start:0x80157090 end:0x80157210
|
||||
.bss start:0x801C1E00 end:0x801C1E30
|
||||
.sdata start:0x801F0AB0 end:0x801F0AD0
|
||||
.sbss start:0x801F13A0 end:0x801F13C0
|
||||
.sdata2 start:0x801F2800 end:0x801F28D8
|
||||
|
||||
game/board/lottery.c:
|
||||
.text start:0x8007A6B4 end:0x8007F9C8
|
||||
.rodata start:0x8011DD10 end:0x8011DE40
|
||||
.data start:0x80157210 end:0x80157578
|
||||
.bss start:0x801C1E30 end:0x801C1E60
|
||||
.sdata start:0x801F0AD0 end:0x801F0AF0
|
||||
.sbss start:0x801F13C0 end:0x801F13E0
|
||||
.sdata2 start:0x801F28D8 end:0x801F2A68
|
||||
|
||||
game/board/basic_space.c:
|
||||
.text start:0x8007F9C8 end:0x80080BCC
|
||||
.data start:0x80157578 end:0x801575B0
|
||||
.sdata2 start:0x801F2A68 end:0x801F2AF8
|
||||
|
||||
game/board/warp.c:
|
||||
.text start:0x80080BCC end:0x80081544
|
||||
.rodata start:0x8011DE40 end:0x8011DE60
|
||||
.data start:0x801575B0 end:0x801575D0
|
||||
.bss start:0x801C1E60 end:0x801C1E70
|
||||
.sdata start:0x801F0AF0 end:0x801F0B00
|
||||
.sbss start:0x801F13E0 end:0x801F13F8
|
||||
.sdata2 start:0x801F2AF8 end:0x801F2B48
|
||||
|
||||
game/board/char_wheel.c:
|
||||
.text start:0x80081544 end:0x80082B3C
|
||||
.data start:0x801575D0 end:0x80157638
|
||||
.sdata start:0x801F0B00 end:0x801F0B08
|
||||
.sbss start:0x801F13F8 end:0x801F1418
|
||||
.sdata2 start:0x801F2B48 end:0x801F2BD8
|
||||
|
||||
game/board/mushroom.c:
|
||||
.text start:0x80082B3C end:0x80083D88
|
||||
.sdata start:0x801F0B08 end:0x801F0B18
|
||||
.sbss start:0x801F1418 end:0x801F1428
|
||||
.sdata2 start:0x801F2BD8 end:0x801F2C60
|
||||
|
||||
game/board/star.c:
|
||||
.text start:0x80083D88 end:0x80085B74
|
||||
.rodata start:0x8011DE60 end:0x8011DED0
|
||||
.data start:0x80157638 end:0x801576F0
|
||||
.bss start:0x801C1E70 end:0x801C1E80
|
||||
.sdata start:0x801F0B18 end:0x801F0B20
|
||||
.sbss start:0x801F1428 end:0x801F1440
|
||||
.sdata2 start:0x801F2C60 end:0x801F2D00
|
||||
|
||||
game/board/roll.c:
|
||||
.text start:0x80085B74 end:0x800882B4
|
||||
.rodata start:0x8011DED0 end:0x8011DF38
|
||||
.data start:0x801576F0 end:0x80157790
|
||||
.bss start:0x801C1E80 end:0x801C1E90
|
||||
.sdata start:0x801F0B20 end:0x801F0B38
|
||||
.sbss start:0x801F1440 end:0x801F1460
|
||||
.sdata2 start:0x801F2D00 end:0x801F2DB0
|
||||
|
||||
game/board/ui.c:
|
||||
.text start:0x800882B4 end:0x8008DE88
|
||||
.rodata start:0x8011DF38 end:0x8011E020
|
||||
.data start:0x80157790 end:0x80157990
|
||||
.bss start:0x801C1E90 end:0x801C1F20
|
||||
.sdata start:0x801F0B38 end:0x801F0B40
|
||||
.sbss start:0x801F1460 end:0x801F1498
|
||||
.sdata2 start:0x801F2DB0 end:0x801F2E70
|
||||
|
||||
game/board/block.c:
|
||||
.text start:0x8008DE88 end:0x8008ED48
|
||||
.rodata start:0x8011E020 end:0x8011E040
|
||||
.data start:0x80157990 end:0x801579A8
|
||||
.bss start:0x801C1F20 end:0x801C1F48
|
||||
.sdata start:0x801F0B40 end:0x801F0B48
|
||||
.sbss start:0x801F1498 end:0x801F14B0
|
||||
.sdata2 start:0x801F2E70 end:0x801F2EC8
|
||||
|
||||
game/board/item.c:
|
||||
.text start:0x8008ED48 end:0x800974CC
|
||||
.rodata start:0x8011E040 end:0x8011E058
|
||||
.data start:0x801579A8 end:0x80157D98
|
||||
.bss start:0x801C1F48 end:0x801C1F88
|
||||
.sdata start:0x801F0B48 end:0x801F0B58
|
||||
.sbss start:0x801F14B0 end:0x801F14F0
|
||||
.sdata2 start:0x801F2EC8 end:0x801F3100
|
||||
|
||||
game/board/bowser.c:
|
||||
.text start:0x800974CC end:0x8009B3F4
|
||||
.rodata start:0x8011E058 end:0x8011E120
|
||||
.data start:0x80157D98 end:0x80157DE8
|
||||
.bss start:0x801C1F88 end:0x801C1FD0
|
||||
.sdata start:0x801F0B58 end:0x801F0B70
|
||||
.sbss start:0x801F14F0 end:0x801F1530
|
||||
.sdata2 start:0x801F3100 end:0x801F31B0
|
||||
|
||||
game/board/battle.c:
|
||||
.text start:0x8009B3F4 end:0x8009D068
|
||||
.rodata start:0x8011E120 end:0x8011E1A0
|
||||
.data start:0x80157DE8 end:0x80157E98
|
||||
.bss start:0x801C1FD0 end:0x801C1FE0
|
||||
.sdata start:0x801F0B70 end:0x801F0B78
|
||||
.sbss start:0x801F1530 end:0x801F1558
|
||||
.sdata2 start:0x801F31B0 end:0x801F3258
|
||||
|
||||
game/board/fortune.c:
|
||||
.text start:0x8009D068 end:0x8009DEF0
|
||||
.rodata start:0x8011E1A0 end:0x8011E1C8
|
||||
.data start:0x80157E98 end:0x80157EB0
|
||||
.bss start:0x801C1FE0 end:0x801C1FF8
|
||||
.sdata start:0x801F0B78 end:0x801F0B80
|
||||
.sbss start:0x801F1558 end:0x801F1568
|
||||
.sdata2 start:0x801F3258 end:0x801F3268
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -5,7 +5,7 @@ symbols: config/GMPP01_00/symbols.txt
|
|||
splits: config/GMPP01_00/splits.txt
|
||||
quick_analysis: false # Faster re-runs after initial analysis
|
||||
mw_comment_version: 10 # GC 2.6 linker
|
||||
force_active: [__register_global_object]
|
||||
force_active: [__register_global_object, lbl_801D40D0]
|
||||
|
||||
detect_objects: true
|
||||
detect_strings: true
|
||||
|
|
|
|||
44
configure.py
44
configure.py
|
|
@ -422,28 +422,28 @@ config.libs = [
|
|||
Object(Matching, "game/flag.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/saveload.c"),
|
||||
Object(Matching, "game/sreset.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/main.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/player.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/model.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/window.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/audio.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/com.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/view.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/space.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/shop.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/lottery.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/basic_space.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/warp.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/char_wheel.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/mushroom.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/star.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/roll.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/ui.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/block.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/item.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/bowser.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/battle.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/fortune.c"),
|
||||
Object(Matching, "game/board/main.c"),
|
||||
Object(Matching, "game/board/player.c"),
|
||||
Object(Matching, "game/board/model.c"),
|
||||
Object(Matching, "game/board/window.c"),
|
||||
Object(Matching, "game/board/audio.c"),
|
||||
Object(Matching, "game/board/com.c"),
|
||||
Object(Matching, "game/board/view.c"),
|
||||
Object(Matching, "game/board/space.c"),
|
||||
Object(Matching, "game/board/shop.c"),
|
||||
Object(Matching, "game/board/lottery.c"),
|
||||
Object(Matching, "game/board/basic_space.c"),
|
||||
Object(Matching, "game/board/warp.c"),
|
||||
Object(Matching, "game/board/char_wheel.c"),
|
||||
Object(Matching, "game/board/mushroom.c"),
|
||||
Object(Matching, "game/board/star.c"),
|
||||
Object(Matching, "game/board/roll.c"),
|
||||
Object(Matching, "game/board/ui.c"),
|
||||
Object(Matching, "game/board/block.c"),
|
||||
Object(Matching, "game/board/item.c"),
|
||||
Object(Matching, "game/board/bowser.c"),
|
||||
Object(Matching, "game/board/battle.c"),
|
||||
Object(Matching, "game/board/fortune.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/boo.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/mg_setup.c"),
|
||||
Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/boo_house.c"),
|
||||
|
|
|
|||
|
|
@ -31,5 +31,6 @@ s32 BoardWinPortraitGetStar(void);
|
|||
void BoardWinPlayerSet(s32 player);
|
||||
void BoardWinStartComKeySet(void);
|
||||
void BoardWinComKeyFuncSet(BoardWinComKeyFunc func);
|
||||
s16 BoardWinIDGet(void);
|
||||
|
||||
#endif
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "dolphin.h"
|
||||
#include "game/flag.h"
|
||||
#include "version.h"
|
||||
|
||||
//HACK: to prevent prototype errors
|
||||
extern void HuPadRumbleAllStop(void);
|
||||
|
|
@ -235,6 +236,7 @@ static inline s32 GWMessSpeedGet(void)
|
|||
|
||||
static inline void GWMessSpeedSet(s32 value)
|
||||
{
|
||||
#if VERSION_NTSC
|
||||
GWSystem.mess_speed = value;
|
||||
switch(value) {
|
||||
case 0:
|
||||
|
|
@ -249,6 +251,26 @@ static inline void GWMessSpeedSet(s32 value)
|
|||
GWSystem.mess_delay = 32;
|
||||
break;
|
||||
}
|
||||
#else
|
||||
GWSystem.mess_speed = value;
|
||||
switch(value) {
|
||||
case 0:
|
||||
GWSystem.mess_delay = 32;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
GWSystem.mess_delay = 64;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
GWSystem.mess_delay = 48;
|
||||
break;
|
||||
|
||||
default:
|
||||
GWSystem.mess_delay = 120;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void GWSaveModeSet(s32 value)
|
||||
|
|
|
|||
|
|
@ -132,6 +132,12 @@ static void ExecCharWheel(omObjData *arg0) {
|
|||
temp_r31 = OM_GET_WORK_PTR(arg0, CharWheelWork);;
|
||||
if (temp_r31->unk00_field0 != 0 || BoardIsKill()) {
|
||||
KillCharWheelSpr();
|
||||
#if VERSION_PAL
|
||||
if (wheelFXStat != -1) {
|
||||
HuAudFXStop(wheelFXStat);
|
||||
wheelFXStat = -1;
|
||||
}
|
||||
#endif
|
||||
charWheelObj = NULL;
|
||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||
return;
|
||||
|
|
@ -322,7 +328,13 @@ static void UpdateCharWheel(CharWheelWork *arg0) {
|
|||
}
|
||||
var_f23 = 8191.0f - 8191.0f * (var_f25 / wheelSpeed);
|
||||
OSf32tos16(&var_f23, &var_r17);
|
||||
#if VERSION_PAL
|
||||
if(wheelFXStat != -1) {
|
||||
HuAudFXPitchSet(wheelFXStat, -var_r17);
|
||||
}
|
||||
#else
|
||||
HuAudFXPitchSet(wheelFXStat, -var_r17);
|
||||
#endif
|
||||
if (var_f25 > -0.0000001f && var_f25 < 0.0000001f) {
|
||||
arg0->unk00_field3 = 3;
|
||||
if (wheelFXStat != -1) {
|
||||
|
|
@ -379,7 +391,14 @@ static void GrowCharWheel(CharWheelWork *arg0) {
|
|||
}
|
||||
arg0->unk02 = 90;
|
||||
arg0->unk00_field3 = 2;
|
||||
#if VERSION_PAL
|
||||
if(!BoardIsKill()) {
|
||||
wheelFXStat = HuAudFXPlay(0x30A);
|
||||
}
|
||||
#else
|
||||
wheelFXStat = HuAudFXPlay(0x30A);
|
||||
#endif
|
||||
|
||||
}
|
||||
OSs8tof32(&arg0->unk02, &temp_f30);
|
||||
HuSprGrpScaleSet(wheelSprGrp, sind(temp_f30), sind(temp_f30));
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ static AnimData *genieParticleAnim;
|
|||
static s16 geniePlayerMot[3];
|
||||
static Process *itemProc;
|
||||
|
||||
s32 lbl_801D37A0[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 };
|
||||
static s32 itemMotTbl[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 };
|
||||
|
||||
static void (*itemFuncTbl[])(void) = { ExecItemMini, ExecItemMega, ExecItemMiniSuper, ExecItemMegaSuper, ExecItemHammer, ExecItemPipe, ExecItemSwap,
|
||||
ExecItemSpark, ExecItemLight, ExecItemWhistle, ExecItemBowser, ExecItemBooBall, ExecItemGenie, ExecItemBag };
|
||||
|
|
@ -1183,7 +1183,7 @@ static void ExecItemSpark(void)
|
|||
BoardModelLayerSet(temp_r30, 3);
|
||||
BoardModelVisibilitySet(temp_r30, 0);
|
||||
HuAudFXPlay(0x350);
|
||||
suitMdl = BoardModelCreate(itemMdlTbl[currItem], lbl_801D37A0, 0);
|
||||
suitMdl = BoardModelCreate(itemMdlTbl[currItem], itemMotTbl, 0);
|
||||
BoardModelLayerSet(suitMdl, 2);
|
||||
ItemShowProc(NULL, NULL);
|
||||
temp_r28 = GWPlayer[currItemRestore].space_curr;
|
||||
|
|
|
|||
|
|
@ -403,8 +403,11 @@ static void MainFunc(void)
|
|||
if(_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
BoardTutorialWorkSave();
|
||||
BoardTutorialPlayerInit();
|
||||
GWSystem.mess_speed = 1;
|
||||
GWSystem.mess_delay = 32;
|
||||
#if VERSION_PAL
|
||||
GWMessSpeedSet(3);
|
||||
#else
|
||||
GWMessSpeedSet(1);
|
||||
#endif
|
||||
}
|
||||
CreateBoard();
|
||||
if(!_CheckFlag(FLAG_ID_MAKE(1, 1))) {
|
||||
|
|
|
|||
|
|
@ -139,6 +139,71 @@ s32 BoardRollExec(s32 arg0)
|
|||
return destMode;
|
||||
}
|
||||
|
||||
static void RollWinCreate(s32 playerNo)
|
||||
{
|
||||
float sp8[2];
|
||||
float posX;
|
||||
float posY;
|
||||
s32 var_r29;
|
||||
s32 var_r27;
|
||||
s32 temp_r25;
|
||||
|
||||
if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
var_r27 = BoardPlayerItemCount(playerNo);
|
||||
if (GWTeamGet()) {
|
||||
temp_r25 = BoardPlayerSameTeamFind(playerNo);
|
||||
var_r27 += BoardPlayerItemCount(temp_r25);
|
||||
}
|
||||
if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) {
|
||||
var_r29 = MAKE_MESSID(0x09, 0x04);
|
||||
}
|
||||
else {
|
||||
var_r29 = MAKE_MESSID(0x09, 0x02);
|
||||
}
|
||||
if (inputTimer != 0) {
|
||||
var_r29 = MAKE_MESSID(0x30, 0x25);
|
||||
}
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r29);
|
||||
#if VERSION_PAL
|
||||
posY = HU_DISP_HEIGHT - 176;
|
||||
switch (GWGameStat.language) {
|
||||
case 0:
|
||||
case 4:
|
||||
posX = -10000.0f;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 32.0f);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
|
||||
posY = 258;
|
||||
break;
|
||||
|
||||
default:
|
||||
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
|
||||
break;
|
||||
}
|
||||
#else
|
||||
switch (GWGameStat.language) {
|
||||
case 0:
|
||||
posX = -10000.0f;
|
||||
break;
|
||||
case 1:
|
||||
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
|
||||
break;
|
||||
}
|
||||
posY = HU_DISP_HEIGHT - 176;
|
||||
#endif
|
||||
|
||||
rollWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0);
|
||||
HuWinBGTPLvlSet(rollWin, 0.0f);
|
||||
HuWinMesSpeedSet(rollWin, 0);
|
||||
HuWinMesSet(rollWin, var_r29);
|
||||
}
|
||||
}
|
||||
|
||||
void BoardRollKill(void)
|
||||
{
|
||||
if (rollProc) {
|
||||
|
|
@ -177,15 +242,11 @@ void BoardRollWinDispSet(s32 arg0)
|
|||
|
||||
static void RollMain(void)
|
||||
{
|
||||
float sp8[2];
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
|
||||
s32 var_r28;
|
||||
s32 var_r27;
|
||||
s32 temp_r26;
|
||||
s32 temp_r25;
|
||||
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
s32 i;
|
||||
|
||||
diceValue[0] = diceValue[1] = diceValue[2] = 0;
|
||||
|
|
@ -195,37 +256,7 @@ static void RollMain(void)
|
|||
BoardCameraMotionWait();
|
||||
BoardCameraTargetModelSet(-1);
|
||||
for (i = 0; i < numDice; i++) {
|
||||
temp_r26 = rollPlayer;
|
||||
if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
var_r27 = BoardPlayerItemCount(temp_r26);
|
||||
if (GWTeamGet()) {
|
||||
temp_r25 = BoardPlayerSameTeamFind(temp_r26);
|
||||
var_r27 += BoardPlayerItemCount(temp_r25);
|
||||
}
|
||||
if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) {
|
||||
var_r29 = MAKE_MESSID(0x09, 0x04);
|
||||
}
|
||||
else {
|
||||
var_r29 = MAKE_MESSID(0x09, 0x02);
|
||||
}
|
||||
if (inputTimer != 0) {
|
||||
var_r29 = MAKE_MESSID(0x30, 0x25);
|
||||
}
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r29);
|
||||
switch (GWGameStat.language) {
|
||||
case 0:
|
||||
var_f31 = -10000.0f;
|
||||
break;
|
||||
case 1:
|
||||
var_f31 = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
|
||||
break;
|
||||
}
|
||||
var_f30 = HU_DISP_HEIGHT - 176;
|
||||
rollWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0);
|
||||
HuWinBGTPLvlSet(rollWin, 0.0f);
|
||||
HuWinMesSpeedSet(rollWin, 0);
|
||||
HuWinMesSet(rollWin, var_r29);
|
||||
}
|
||||
RollWinCreate(rollPlayer);
|
||||
DiceCreate(i);
|
||||
DiceWaitFull(i);
|
||||
DoInput(i);
|
||||
|
|
|
|||
|
|
@ -984,7 +984,12 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) {
|
|||
omObjData *temp_r30;
|
||||
ItemChoiceWork *var_r31;
|
||||
s16 spC;
|
||||
|
||||
s16 i;
|
||||
#if VERSION_PAL
|
||||
for(i=0; i<6; i++) {
|
||||
cursorPosTbl[i][0] = 190;
|
||||
}
|
||||
#endif
|
||||
temp_r30 = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, UpdateShopItemChoice);
|
||||
itemChoiceObj = temp_r30;
|
||||
itemChoice = -1;
|
||||
|
|
@ -996,11 +1001,29 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) {
|
|||
var_r31->unk02 = 0;
|
||||
var_r31->unk03 = arg1;
|
||||
var_r31->unk06 = HuSprGrpCreate(1);
|
||||
#if VERSION_PAL
|
||||
if (GWLanguageGet() != 0) {
|
||||
s16 winId = BoardWinIDGet();
|
||||
if(winId != -1) {
|
||||
WindowData *winP = &winData[winId];
|
||||
for(i=0; i<6; i++) {
|
||||
cursorPosTbl[i][0] = winP->pos_x+96;
|
||||
}
|
||||
} else {
|
||||
for(i=0; i<6; i++) {
|
||||
cursorPosTbl[i][0] = 166;
|
||||
}
|
||||
}
|
||||
}
|
||||
temp_r30->trans.x = cursorPosTbl[0][0];
|
||||
temp_r30->trans.y = cursorPosTbl[0][1];
|
||||
#else
|
||||
temp_r30->trans.x = cursorPosTbl[0][0];
|
||||
temp_r30->trans.y = cursorPosTbl[0][1];
|
||||
if (GWLanguageGet() != 0) {
|
||||
temp_r30->trans.x -= 24.0f;
|
||||
}
|
||||
#endif
|
||||
if (GWPlayer[arg0].com) {
|
||||
var_r31->unk01 = GWMessDelayGet();
|
||||
}
|
||||
|
|
@ -1032,9 +1055,11 @@ static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) {
|
|||
temp_r28 = arg1->unk02;
|
||||
arg0->trans.x = cursorPosTbl[arg1->unk02][0];
|
||||
arg0->trans.y = cursorPosTbl[arg1->unk02][1];
|
||||
#if VERSION_NTSC
|
||||
if (GWLanguageGet() != 0) {
|
||||
arg0->trans.x -= 24.0f;
|
||||
}
|
||||
#endif
|
||||
if (GWPlayer[arg1->unk00_field1].com) {
|
||||
GetShopItemChoiceInput(arg1, arg0, &sp8);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ static Process *starProc;
|
|||
static s16 starParman = -1;
|
||||
static s16 hostMdl = -1;
|
||||
|
||||
const s32 lbl_8011E040[9] = {
|
||||
static const s32 starMesTbl1[9] = {
|
||||
MAKE_MESSID(12, 0),
|
||||
MAKE_MESSID(12, 9),
|
||||
MAKE_MESSID(12, 18),
|
||||
|
|
@ -86,7 +86,7 @@ const s32 lbl_8011E040[9] = {
|
|||
MAKE_MESSID(12, 0)
|
||||
};
|
||||
|
||||
const s32 lbl_8011E064[9][2] = {
|
||||
static const s32 starMesTbl2[9][2] = {
|
||||
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
||||
{ MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) },
|
||||
{ MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) },
|
||||
|
|
@ -249,12 +249,12 @@ static void ExecStar(void) {
|
|||
BoardCameraViewSet(3);
|
||||
BoardCameraMotionWait();
|
||||
if (GWStarsGet(temp_r31) >= 999) {
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 5;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 5;
|
||||
BoardWinCreate(0, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
} else if (BoardPlayerCoinsGet(temp_r31) < 20 && GWSystem.last5_effect != 4) {
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 2;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 2;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
|
|
@ -263,7 +263,7 @@ static void ExecStar(void) {
|
|||
while (!BoardStatusStopCheck(0) || !BoardStatusStopCheck(1) || !BoardStatusStopCheck(2) || !BoardStatusStopCheck(3)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
temp_r29 = lbl_8011E040[temp_r27];
|
||||
temp_r29 = starMesTbl1[temp_r27];
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinInsertMesSet(BoardPlayerGetCharMess(temp_r31), 0);
|
||||
BoardWinWait();
|
||||
|
|
@ -275,12 +275,12 @@ static void ExecStar(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
if (GWSystem.last5_effect == 4) {
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 8;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 8;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
break;
|
||||
}
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 1;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 1;
|
||||
BoardWinCreateChoice(1, temp_r29, BoardWinPortraitGetStar(), 0);
|
||||
BoardWinAttrSet(0x10);
|
||||
if (GWPlayer[temp_r31].com) {
|
||||
|
|
@ -294,7 +294,7 @@ static void ExecStar(void) {
|
|||
switch (BoardWinChoiceGet()) {
|
||||
case 0:
|
||||
if (BoardPlayerCoinsGet(temp_r31) < 20) {
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 2;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 2;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardStatusShowSet(temp_r31, 0);
|
||||
|
|
@ -306,7 +306,7 @@ static void ExecStar(void) {
|
|||
}
|
||||
goto block_A;
|
||||
case 1:
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 4;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 4;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardStatusShowSet(temp_r31, 0);
|
||||
|
|
@ -326,7 +326,7 @@ static void ExecStar(void) {
|
|||
}
|
||||
}
|
||||
block_A:
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 3;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 3;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
|
|
@ -734,9 +734,9 @@ void BoardStarShowNext(s32 arg0) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
if (var_r28 == 0) {
|
||||
var_r30 = lbl_8011E040[GWBoardGet()] + 6;
|
||||
var_r30 = starMesTbl1[GWBoardGet()] + 6;
|
||||
} else {
|
||||
var_r30 = lbl_8011E064[GWBoardGet()][0];
|
||||
var_r30 = starMesTbl2[GWBoardGet()][0];
|
||||
}
|
||||
BoardWinCreate(3, var_r30, -1);
|
||||
BoardWinPause();
|
||||
|
|
@ -748,9 +748,9 @@ void BoardStarShowNext(s32 arg0) {
|
|||
BoardWinKill();
|
||||
HuPrcSleep(3);
|
||||
if (var_r28 == 0) {
|
||||
var_r30 = lbl_8011E040[GWBoardGet()] + 7;
|
||||
var_r30 = starMesTbl1[GWBoardGet()] + 7;
|
||||
} else {
|
||||
var_r30 = lbl_8011E064[GWBoardGet()][1];
|
||||
var_r30 = starMesTbl2[GWBoardGet()][1];
|
||||
}
|
||||
BoardWinCreate(3, var_r30, -1);
|
||||
BoardWinWait();
|
||||
|
|
|
|||
|
|
@ -1951,28 +1951,32 @@ static void UpdateItemWindow(omObjData *arg0) {
|
|||
|
||||
static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) {
|
||||
float spC[2];
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float var_f29;
|
||||
|
||||
float posX;
|
||||
float posY;
|
||||
float yOfs;
|
||||
s32 var_r30;
|
||||
|
||||
#if VERSION_NTSC
|
||||
switch (GWGameStat.language) {
|
||||
case 1:
|
||||
var_f31 = 0.0f;
|
||||
yOfs = 0.0f;
|
||||
break;
|
||||
case 0:
|
||||
var_f31 = 0.0f;
|
||||
yOfs = 0.0f;
|
||||
break;
|
||||
}
|
||||
#else
|
||||
yOfs = 0;
|
||||
#endif
|
||||
if (arg1 != 0) {
|
||||
var_r30 = MAKE_MESSID(0x10, 0x1A);
|
||||
} else {
|
||||
var_r30 = MAKE_MESSID(0x10, 0x1B);
|
||||
}
|
||||
HuWinMesMaxSizeGet(1, spC, var_r30);
|
||||
var_f30 = -10000.0f;
|
||||
var_f29 = var_f31 + (HU_DISP_HEIGHT-128);
|
||||
arg0->unk06 = HuWinCreate(var_f30, var_f29, spC[0], spC[1], 0);
|
||||
posX = -10000.0f;
|
||||
posY = yOfs + (HU_DISP_HEIGHT-128);
|
||||
arg0->unk06 = HuWinCreate(posX, posY, spC[0], spC[1], 0);
|
||||
HuWinBGTPLvlSet(arg0->unk06, 0.0f);
|
||||
HuWinMesSpeedSet(arg0->unk06, 0);
|
||||
HuWinMesSet(arg0->unk06, var_r30);
|
||||
|
|
|
|||
|
|
@ -396,20 +396,32 @@ static void DestroyFocus(void) {
|
|||
|
||||
static void CreateButtonWin(void) {
|
||||
float sp8[2];
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float posX;
|
||||
float posY;
|
||||
s32 var_r31;
|
||||
|
||||
if (viewControls != 2) {
|
||||
var_r31 = MAKE_MESSID(0x09, 0x05);
|
||||
var_f31 = 286.0f;
|
||||
#if VERSION_PAL
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r31);
|
||||
posX = 288-((sp8[0]/2)-32);
|
||||
#endif
|
||||
posY = 286.0f;
|
||||
} else {
|
||||
var_r31 = MAKE_MESSID(0x10, 0x4D);
|
||||
var_f31 = 328.0f;
|
||||
#if VERSION_PAL
|
||||
posX = -10000.0f;
|
||||
posY = 324.0f;
|
||||
#else
|
||||
posY = 328.0f;
|
||||
#endif
|
||||
|
||||
}
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r31);
|
||||
var_f30 = -10000.0f;
|
||||
buttonWin = HuWinCreate(var_f30, var_f31, sp8[0], sp8[1], 0);
|
||||
#if VERSION_NTSC
|
||||
posX = -10000.0f;
|
||||
#endif
|
||||
buttonWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0);
|
||||
HuWinBGTPLvlSet(buttonWin, 0.0f);
|
||||
HuWinMesSpeedSet(buttonWin, 0);
|
||||
HuWinMesSet(buttonWin, var_r31);
|
||||
|
|
|
|||
|
|
@ -97,6 +97,11 @@ static void ExecBoardWindow(void) {
|
|||
if (size[0] <= size_win[0]) {
|
||||
size[0] = size_win[0];
|
||||
pos[0] = pos_win[0];
|
||||
#if VERSION_PAL
|
||||
if(winPosIdx == 1) {
|
||||
size[0] += 4;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
pos[0] = -10000.0f;
|
||||
}
|
||||
|
|
@ -338,7 +343,7 @@ s32 BoardWinPortraitGetStar(void) {
|
|||
|
||||
void BoardWinPlayerSet(s32 player) {
|
||||
s32 i;
|
||||
|
||||
#if VERSION_NTSC
|
||||
if (player == -1) {
|
||||
if (GWPartyGet() != 1) {
|
||||
for (i = 0, disablePlayer = i; i < 4; i++) {
|
||||
|
|
@ -354,6 +359,21 @@ void BoardWinPlayerSet(s32 player) {
|
|||
} else {
|
||||
disablePlayer = ~(1 << GWPlayer[player].port);
|
||||
}
|
||||
#else
|
||||
if (player == -1) {
|
||||
if (GWPartyGet() != 1) {
|
||||
for (i = 0, disablePlayer = i; i < 4; i++) {
|
||||
if (GWPlayer[i].com != 0) {
|
||||
disablePlayer |= 1 << GWPlayer[i].port;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
disablePlayer = 0;
|
||||
}
|
||||
} else {
|
||||
disablePlayer = ~(1 << GWPlayer[player].port);
|
||||
}
|
||||
#endif
|
||||
if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) {
|
||||
disablePlayer = 0;
|
||||
}
|
||||
|
|
@ -405,4 +425,9 @@ void BoardWinStartComKeySet(void) {
|
|||
|
||||
void BoardWinComKeyFuncSet(BoardWinComKeyFunc func) {
|
||||
comKeyFunc = func;
|
||||
}
|
||||
|
||||
s16 BoardWinIDGet(void)
|
||||
{
|
||||
return windowID;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue