multiple fixes

This commit is contained in:
jiangzhengwenjz
2019-07-02 09:38:28 +08:00
parent 3ec40eb833
commit 5384fd020c
11 changed files with 28 additions and 25 deletions
-1
View File
@@ -43,5 +43,4 @@ build/
*.pl *.pl
*.bak *.bak
src/data/items.h src/data/items.h
src/data/items.h # Autogenerated by jsonproc
tools/br_ips/{br_ips,ips_patch}{,.exe} tools/br_ips/{br_ips,ips_patch}{,.exe}
+4
View File
@@ -1,6 +1,10 @@
#ifndef GUARD_FLDEFF_H #ifndef GUARD_FLDEFF_H
#define GUARD_FLDEFF_H #define GUARD_FLDEFF_H
#define FLDEFF_SET_FUNC_TO_DATA(func) \
gTasks[taskId].data[8] = (u32)func >> 16; \
gTasks[taskId].data[9] = (u32)func;
extern struct MapPosition gPlayerFacingPosition; extern struct MapPosition gPlayerFacingPosition;
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId); bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
+1 -1
View File
@@ -983,7 +983,7 @@ static void BattleAICmd_is_most_powerful_move(void)
&& sDiscouragedPowerfulMoveEffects[i] == 0xFFFF) && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
{ {
gDynamicBasePower = 0; gDynamicBasePower = 0;
*(&gBattleStruct->dynamicMoveType) = 0; gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gMoveResultFlags = 0; gMoveResultFlags = 0;
gCritMultiplier = 1; gCritMultiplier = 1;
+2 -2
View File
@@ -575,7 +575,7 @@ bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src
struct SpriteSheet dest; struct SpriteSheet dest;
void* buffer; void* buffer;
buffer = AllocZeroed(*((u32*)(&src->data[0])) >> 8); buffer = AllocZeroed(*((u32*)src->data) >> 8);
if (!buffer) if (!buffer)
return TRUE; return TRUE;
LZ77UnCompWram(src->data, buffer); LZ77UnCompWram(src->data, buffer);
@@ -592,7 +592,7 @@ bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette
struct SpritePalette dest; struct SpritePalette dest;
void* buffer; void* buffer;
buffer = AllocZeroed(*((u32*)(&src->data[0])) >> 8); buffer = AllocZeroed(*((u32*)src->data) >> 8);
if (!buffer) if (!buffer)
return TRUE; return TRUE;
LZ77UnCompWram(src->data, buffer); LZ77UnCompWram(src->data, buffer);
+4 -5
View File
@@ -8,7 +8,7 @@
#include "sprite.h" #include "sprite.h"
#include "constants/map_objects.h" #include "constants/map_objects.h"
static void hm2_dig(void); static void FieldCallback_Dig(void);
static void sub_80C9AFC(void); static void sub_80C9AFC(void);
bool8 SetUpFieldMove_Dig(void) bool8 SetUpFieldMove_Dig(void)
@@ -16,13 +16,13 @@ bool8 SetUpFieldMove_Dig(void)
if (CanUseEscapeRopeOnCurrMap() == TRUE) if (CanUseEscapeRopeOnCurrMap() == TRUE)
{ {
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
gPostMenuFieldCallback = hm2_dig; gPostMenuFieldCallback = FieldCallback_Dig;
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
static void hm2_dig(void) static void FieldCallback_Dig(void)
{ {
Overworld_ResetStateAfterDigEscRope(); Overworld_ResetStateAfterDigEscRope();
FieldEffectStart(FLDEFF_USE_DIG); FieldEffectStart(FLDEFF_USE_DIG);
@@ -33,8 +33,7 @@ bool8 FldEff_UseDig(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)sub_80C9AFC >> 16; FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC);
gTasks[taskId].data[9] = (u32)sub_80C9AFC;
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
return FALSE; return FALSE;
} }
+1 -2
View File
@@ -124,8 +124,7 @@ bool8 FldEff_UseRockSmash(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)sub_80C9A60 >> 16; FLDEFF_SET_FUNC_TO_DATA(sub_80C9A60);
gTasks[taskId].data[9] = (u32)sub_80C9A60;
IncrementGameStat(GAME_STAT_USED_ROCK_SMASH); IncrementGameStat(GAME_STAT_USED_ROCK_SMASH);
return FALSE; return FALSE;
} }
+1 -2
View File
@@ -35,8 +35,7 @@ static void FldEff_UseStrength(void)
bool8 sub_80D0860(void) bool8 sub_80D0860(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)sub_80D08A8 >> 16; FLDEFF_SET_FUNC_TO_DATA(sub_80D08A8);
gTasks[taskId].data[9] = (u32)sub_80D08A8;
GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1); GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1);
return FALSE; return FALSE;
} }
+1 -2
View File
@@ -43,8 +43,7 @@ bool8 FldEff_SweetScent(void)
SetWeatherScreenFadeOut(); SetWeatherScreenFadeOut();
taskId = oei_task_add(); taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16; FLDEFF_SET_FUNC_TO_DATA(StartSweetScentFieldEffect);
gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect;
return FALSE; return FALSE;
} }
+1 -2
View File
@@ -29,8 +29,7 @@ static void FieldCallback_Teleport(void)
bool8 FldEff_UseTeleport(void) bool8 FldEff_UseTeleport(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16; FLDEFF_SET_FUNC_TO_DATA(StartTeleportFieldEffect);
gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect;
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
return FALSE; return FALSE;
} }
+6 -5
View File
@@ -6,6 +6,7 @@
#include "random.h" #include "random.h"
#include "malloc.h" #include "malloc.h"
#include "item.h" #include "item.h"
#include "save_location.h"
extern void SetBagPocketsPointers(void); extern void SetBagPocketsPointers(void);
extern void sub_8110840(void *oldSave); extern void sub_8110840(void *oldSave);
@@ -132,28 +133,28 @@ void MoveSaveBlocks_ResetHeap(void)
u32 sav2_x1_query_bit1(void) u32 sav2_x1_query_bit1(void)
{ {
return gSaveBlock2Ptr->specialSaveWarpFlags & 1; return gSaveBlock2Ptr->specialSaveWarpFlags & CONTINUE_GAME_WARP;
} }
void sav2_x9_clear_bit1(void) void sav2_x9_clear_bit1(void)
{ {
gSaveBlock2Ptr->specialSaveWarpFlags &= ~1; gSaveBlock2Ptr->specialSaveWarpFlags &= ~CONTINUE_GAME_WARP;
} }
void sub_804C1AC(void) void sub_804C1AC(void)
{ {
gSaveBlock2Ptr->specialSaveWarpFlags |= 1; gSaveBlock2Ptr->specialSaveWarpFlags |= CONTINUE_GAME_WARP;
} }
void sub_804C1C0(void) void sub_804C1C0(void)
{ {
sub_8055778(0); sub_8055778(0);
gSaveBlock2Ptr->specialSaveWarpFlags |= 1; gSaveBlock2Ptr->specialSaveWarpFlags |= CONTINUE_GAME_WARP;
} }
void sav2_gender2_inplace_and_xFE(void) void sav2_gender2_inplace_and_xFE(void)
{ {
gSaveBlock2Ptr->specialSaveWarpFlags &= ~1; gSaveBlock2Ptr->specialSaveWarpFlags &= ~CONTINUE_GAME_WARP;
} }
void SavePlayerParty(void) void SavePlayerParty(void)
+7 -3
View File
@@ -73,17 +73,21 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
u16 SpeciesToMailSpecies(u16 species, u32 personality) u16 SpeciesToMailSpecies(u16 species, u32 personality)
{ {
return species == 0xC9 ? ((GetUnownLetterByPersonality(personality) << 16) + 0x75300000) >> 16 : species; if (species == SPECIES_UNOWN) {
u32 mailSpecies = GetUnownLetterByPersonality(personality) + 30000;
return mailSpecies;
}
return species;
} }
u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer) u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *unownLetter)
{ {
u16 result; u16 result;
if (mailSpecies >= 30000 && mailSpecies < (30000 + UNOWN_FORM_COUNT)) if (mailSpecies >= 30000 && mailSpecies < (30000 + UNOWN_FORM_COUNT))
{ {
result = SPECIES_UNOWN; result = SPECIES_UNOWN;
*buffer = mailSpecies - 30000; *unownLetter = mailSpecies - 30000;
} }
else else
{ {