summaryrefslogtreecommitdiff
path: root/src/code/z_elf_message.c
diff options
context:
space:
mode:
authorRoman971 <32455037+Roman971@users.noreply.github.com>2020-08-30 18:51:46 +0200
committerGitHub <noreply@github.com>2020-08-30 12:51:46 -0400
commitb4ac94a8fd4ba35163504edd939ef85d087c4fa5 (patch)
tree5d1a748dfcf8d59e5a50403ca31f60e69a958805 /src/code/z_elf_message.c
parent2a2fdf7f3edea4b6ce575eb675e8c3a967371b7c (diff)
Match/Improve more non matching functions (#366)
* Match/Improve more non matchings * Remove SET_NEXT_GAMESTATE from preserved macros
Diffstat (limited to 'src/code/z_elf_message.c')
-rw-r--r--src/code/z_elf_message.c27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/code/z_elf_message.c b/src/code/z_elf_message.c
index 0342e8468..e188e1947 100644
--- a/src/code/z_elf_message.c
+++ b/src/code/z_elf_message.c
@@ -14,18 +14,17 @@ ElfMessage sAdultSariaMsgs[] = {
{ 0x06, 0x30, 0x6C, 0x69 }, { 0x06, 0x30, 0x6C, 0x6A }, { 0xE0, 0x00, 0x6D, 0x00 },
};
-#ifdef NON_MATCHING
-// minor ordering and regalloc differences
u32 ElfMessage_CheckCondition(ElfMessage* msg) {
- u16 temp;
+ s32 type = msg->byte0 & 0x1E;
+ u16 flag;
- switch (msg->byte0 & 0x1E) {
+ switch (type) {
case 0:
- temp = 1 << (msg->byte1 & 0x0F);
- return ((msg->byte0 & 1) == 1) == !!(gSaveContext.eventChkInf[(msg->byte1 & 0xF0) >> 4] & temp);
+ flag = 1 << (msg->byte1 & 0x0F);
+ return ((msg->byte0 & 1) == 1) == ((flag & gSaveContext.eventChkInf[(msg->byte1 & 0xF0) >> 4]) != 0);
case 2:
return ((msg->byte0 & 1) == 1) ==
- !!(gBitFlags[msg->byte1 - ITEM_KEY_BOSS] & gSaveContext.dungeonItems[gSaveContext.mapIndex]);
+ ((gSaveContext.dungeonItems[gSaveContext.mapIndex] & gBitFlags[msg->byte1 - ITEM_KEY_BOSS]) != 0);
case 4:
return ((msg->byte0 & 1) == 1) == (msg->byte3 == INV_CONTENT(msg->byte1));
case 6:
@@ -34,16 +33,16 @@ u32 ElfMessage_CheckCondition(ElfMessage* msg) {
return ((msg->byte0 & 1) == 1) == ((msg->byte1 & 0x0F) == CUR_UPG_VALUE(UPG_STRENGTH));
case 0x10:
return ((msg->byte0 & 1) == 1) ==
- !!((gBitFlags[msg->byte3 - ITEM_BOOTS_KOKIRI] << gEquipShifts[EQUIP_BOOTS]) &
- gSaveContext.equipment);
+ (((gBitFlags[msg->byte3 - ITEM_BOOTS_KOKIRI] << gEquipShifts[EQUIP_BOOTS]) &
+ gSaveContext.equipment) != 0);
case 0x20:
return ((msg->byte0 & 1) == 1) ==
- !!(CHECK_QUEST_ITEM(msg->byte3 - ITEM_SONG_MINUET + QUEST_SONG_MINUET));
+ ((CHECK_QUEST_ITEM(msg->byte3 - ITEM_SONG_MINUET + QUEST_SONG_MINUET)) != 0);
case 0x30:
return ((msg->byte0 & 1) == 1) ==
- !!(CHECK_QUEST_ITEM(msg->byte3 - ITEM_MEDALLION_FOREST + QUEST_MEDALLION_FOREST));
+ ((CHECK_QUEST_ITEM(msg->byte3 - ITEM_MEDALLION_FOREST + QUEST_MEDALLION_FOREST)) != 0);
case 0x40:
- return ((msg->byte0 & 1) == 1) == !!gSaveContext.magicAcquired;
+ return ((msg->byte0 & 1) == 1) == (((void)0, gSaveContext.magicAcquired) != 0);
}
}
@@ -53,10 +52,6 @@ u32 ElfMessage_CheckCondition(ElfMessage* msg) {
return false;
}
-#else
-u32 ElfMessage_CheckCondition(ElfMessage* msg);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_elf_message/ElfMessage_CheckCondition.s")
-#endif
u32 func_8006BE88(ElfMessage** msgp) {
u32 temp = true;