From 694dc932e1519a76fb92d06320a870f3d61dae20 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 8 Aug 2020 04:23:02 -0400 Subject: [PATCH] decomp add_star_pieces --- .../code_80850_len_3060/add_star_pieces.s | 27 --------------- papermario/src/code_80850_len_3060.c | 34 +++++++++---------- 2 files changed, 17 insertions(+), 44 deletions(-) delete mode 100644 papermario/asm/nonmatchings/code_80850_len_3060/add_star_pieces.s diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/add_star_pieces.s b/papermario/asm/nonmatchings/code_80850_len_3060/add_star_pieces.s deleted file mode 100644 index be30d40e94..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/add_star_pieces.s +++ /dev/null @@ -1,27 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel add_star_pieces -/* 083620 800EA170 3C058011 */ lui $a1, 0x8011 -/* 083624 800EA174 24A5F290 */ addiu $a1, $a1, -0xd70 -/* 083628 800EA178 90A3000F */ lbu $v1, 0xf($a1) -/* 08362C 800EA17C 00641821 */ addu $v1, $v1, $a0 -/* 083630 800EA180 286200DF */ slti $v0, $v1, 0xdf -/* 083634 800EA184 14400002 */ bnez $v0, .L800EA190 -/* 083638 800EA188 00A0302D */ daddu $a2, $a1, $zero -/* 08363C 800EA18C 240300DE */ addiu $v1, $zero, 0xde -.L800EA190: -/* 083640 800EA190 04620001 */ bltzl $v1, .L800EA198 -/* 083644 800EA194 0000182D */ daddu $v1, $zero, $zero -.L800EA198: -/* 083648 800EA198 18800004 */ blez $a0, .L800EA1AC -/* 08364C 800EA19C A0A3000F */ sb $v1, 0xf($a1) -/* 083650 800EA1A0 94A2032C */ lhu $v0, 0x32c($a1) -/* 083654 800EA1A4 00441021 */ addu $v0, $v0, $a0 -/* 083658 800EA1A8 A4A2032C */ sh $v0, 0x32c($a1) -.L800EA1AC: -/* 08365C 800EA1AC 03E00008 */ jr $ra -/* 083660 800EA1B0 90C2000F */ lbu $v0, 0xf($a2) - diff --git a/papermario/src/code_80850_len_3060.c b/papermario/src/code_80850_len_3060.c index 5e27ed6223..2ea8b24d1e 100644 --- a/papermario/src/code_80850_len_3060.c +++ b/papermario/src/code_80850_len_3060.c @@ -118,26 +118,26 @@ INCLUDE_ASM(code_80850_len_3060, add_coins); INCLUDE_ASM(code_80850_len_3060, add_star_points); -INCLUDE_ASM(code_80850_len_3060, add_star_pieces); +u8 add_star_pieces(s32 amt) { + player_data *playerData = &gPlayerData; + player_data *playerData2 = &gPlayerData; + s32 newSP = playerData->starPieces; -/*u8 add_star_pieces(s32 amt) { - player_data* playerData = &gPlayerData; - s32 newStarPieces = playerData->starPieces + amt; - - if (newStarPieces > 222) { - newStarPieces = 222; - } - if (newStarPieces < 0) { - newStarPieces = 0; + newSP += amt; + if (newSP > 222) { + newSP = 222; } - playerData->starPieces = newStarPieces; + if (newSP < 0) { + newSP = 0; + } + playerData->starPieces = newSP; if (amt > 0) { playerData->starPiecesCollected += amt; } - return playerData->starPieces; -}*/ + return playerData2->starPieces; +} void increment_max_SP() { player_data* playerData = &gPlayerData; @@ -228,7 +228,7 @@ s32 recover_hp(s32 amt) { void subtract_hp(s32 amt) { player_data* playerData = &gPlayerData; s32 newHP = playerData->curHP; - + if (amt > 0) { newHP -= amt; } @@ -252,7 +252,7 @@ s8 has_full_fp(void) { s8 add_fortress_keys(s32 amt) { player_data* playerData = &gPlayerData; - + playerData->fortressKeyCount += amt; return playerData->fortressKeyCount; } @@ -260,12 +260,12 @@ s8 add_fortress_keys(s32 amt) { s8 subtract_fortress_keys(s8 amt) { player_data* playerData = &gPlayerData; player_data* playerData2 = &gPlayerData; // required to match - + playerData->fortressKeyCount -= amt; if (playerData->fortressKeyCount < 0) { playerData->fortressKeyCount = 0; } - + return playerData2->fortressKeyCount; // required to use playerData2 here to match }