From aa86ea3a149141aca7646761c14e43c6e20136a4 Mon Sep 17 00:00:00 2001 From: Prince Frizzy Date: Tue, 1 Mar 2022 21:35:47 -0500 Subject: [PATCH] Fix Merry-Go-Round Boos not having their blue coins to drop. (#8) --- .gitignore | 3 +++ cgdb.exe.stackdump | 14 -------------- gdb.exe.stackdump | 26 -------------------------- src/game/behaviors/coin.inc.c | 19 ++++++++++--------- 4 files changed, 13 insertions(+), 49 deletions(-) delete mode 100644 cgdb.exe.stackdump delete mode 100644 gdb.exe.stackdump diff --git a/.gitignore b/.gitignore index 57d5a6fb..f2c4db8f 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,9 @@ *.idb *.pdb +# Stackdumps +*.stackdump + # datadump /tools/ddump/* diff --git a/cgdb.exe.stackdump b/cgdb.exe.stackdump deleted file mode 100644 index 7d41bad2..00000000 --- a/cgdb.exe.stackdump +++ /dev/null @@ -1,14 +0,0 @@ -Stack trace: -Frame Function Args -000FFFFB418 00180063480 (000FFFFB638, 00000000002, 00000000000, 000FFFFDE50) -000FFFFDE50 0018006563C (000FFFFBC70, 00000000000, 0000000032C, 00000000000) -000FFFFBB40 00180147028 (7FFEB01920AA, 00000000000, 7FFEB285B55F, 00000000000) -000FFFFBE80 00180170764 (00000000000, 00000000000, 00000000000, 00000000000) -000FFFFBE80 0018014332B (00180269458, 00180148F2E, 0010042D040, 000000002D8) -000FFFFBE80 00180215058 (0010042D040, 0010042D08F, 000000002D8, 001802693DF) -000FFFFBE80 00180043517 (000FFFFBEF0, 00000000004, 00000000000, 00100000000) -000FFFFC710 00100408373 (00000000000, 00000000000, 001801C7B4B, 00000000000) -000FFFFC710 00180065505 (008000DF9CC, 00180000000, 7FFEB016B80D, 00000000000) -000FFFFC710 0018013E4D0 (008000DF9CC, 00180000000, 7FFEB016B80D, 00000000000) -000FFFFC710 005FCB3C5E4 (008000DF9CC, 00180000000, 7FFEB016B80D, 00000000000) -End of stack trace diff --git a/gdb.exe.stackdump b/gdb.exe.stackdump deleted file mode 100644 index d7357f71..00000000 --- a/gdb.exe.stackdump +++ /dev/null @@ -1,26 +0,0 @@ -Exception: STATUS_ACCESS_VIOLATION at rip=005E6C11480 -rax=0000000000000001 rbx=00000001008F5600 rcx=0000000000000000 -rdx=0000000100512B00 rsi=0000000000000000 rdi=0000000000000000 -r8 =0000000000000002 r9 =0000000000000018 r10=0000000100000000 -r11=0000000100518F91 r12=0000000000000000 r13=00000000FFFFC7A0 -r14=00000000FFFFCA18 r15=00000000FFFFCA60 -rbp=0000000180239D70 rsp=00000000FFFFC680 -program=C:\msys64\usr\bin\gdb.exe, pid 10125, thread main -cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B -Stack trace: -Frame Function Args -00180239D70 005E6C11480 (001008D6FB8, 001008F5600, 00000000000, 00800236BC0) -00180239D70 00100518EB4 (0018013E3AB, 0000000000B, 0018013E3AB, 00000000008) -00180239D70 00100518FB0 (00100580D4F, 00000000006, 00000000008, 00800181D48) -00180239D70 0010060568C (00800235610, 000FFFFCC20, 001005B2E8D, 008002353C0) -00180239D70 001005F0B81 (001005DF3A6, 001005DEA00, 0010092039D, 000000000B0) -00180239D70 0010056D17E (001005DFA1B, 00000000000, 00000000000, 00100BA1220) -00180239D70 0010056D9BC (001008D6FB8, 000FFFFCAA0, 0000000000E, 00000000040) -00180239D70 001006A5F75 (001008D6FB8, 000FFFFCAA0, 00100BBCD88, 000FFFFCA80) -00180239D70 0010059BE9D (00000000000, 00000000000, 001801B5F02, 000FFFFCC20) -000FFFFCCE0 0010059CE6D (0018013E3AB, 00000000001, 00180239780, 0000000000E) -000FFFFCCE0 0010082DCA7 (00180355C78, 00000000000, 00180058D61, 001802EE100) -000FFFFCCE0 0018004AEAA (00000000000, 00000000000, 00000000000, 00000000000) -000FFFFFFF0 00180048846 (00000000000, 00000000000, 00000000000, 00000000000) -000FFFFFFF0 001800488F4 (00000000000, 00000000000, 00000000000, 00000000000) -End of stack trace diff --git a/src/game/behaviors/coin.inc.c b/src/game/behaviors/coin.inc.c index 27e77de5..09a1aa1d 100644 --- a/src/game/behaviors/coin.inc.c +++ b/src/game/behaviors/coin.inc.c @@ -220,24 +220,25 @@ void coin_inside_boo_act_1(void) { } void coin_inside_boo_act_0(void) { - s16 sp26; - f32 sp20; struct Object *parent = o->parentObj; + cur_obj_become_intangible(); - if (o->oTimer == 0 && gCurrLevelNum == LEVEL_BBH) { - cur_obj_set_model(smlua_model_util_load(E_MODEL_BLUE_COIN)); - cur_obj_scale(0.7); - } - if (parent == NULL || (parent->behavior != bhvGhostHuntBoo && parent->behavior != bhvBoo)) { + + if (parent == NULL || (parent->behavior != bhvMerryGoRoundBoo && parent->behavior != bhvGhostHuntBoo && parent->behavior != bhvBoo)) { o->parentObj = NULL; obj_mark_for_deletion(o); return; } + + if (o->oTimer == 0 && gCurrLevelNum == LEVEL_BBH) { + cur_obj_set_model(smlua_model_util_load(E_MODEL_BLUE_COIN)); + cur_obj_scale(0.7); + } obj_copy_pos(o, parent); if (parent->oBooDeathStatus == BOO_DEATH_STATUS_DYING) { o->oAction = 1; - sp26 = gMarioObject->oMoveAngleYaw; - sp20 = 3.0f; + s16 sp26 = gMarioObject->oMoveAngleYaw; + f32 sp20 = 3.0f; o->oVelX = sins(sp26) * sp20; o->oVelZ = coss(sp26) * sp20; o->oVelY = 35.0f;