mirror of
https://github.com/pret/pokefirered.git
synced 2026-10-02 14:00:42 -05:00
large refactoring to remove special deoxys handling
merged all stringids and string table entries
This commit is contained in:
@@ -2217,4 +2217,8 @@
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro damagenontypes
|
||||
callnative BS_DamageNonTypes
|
||||
.endm
|
||||
|
||||
|
||||
|
||||
10
charmap.txt
10
charmap.txt
@@ -406,7 +406,17 @@ B_DEF_PREFIX3 = FD 2D
|
||||
B_TRAINER2_LOSE_TEXT = FD 2E
|
||||
B_TRAINER2_WIN_TEXT = FD 2F
|
||||
B_BUFF3 = FD 30
|
||||
@ new from pokeemerald
|
||||
B_TRAINER2_CLASS = FD 31
|
||||
B_TRAINER2_NAME = FD 32
|
||||
B_PARTNER_CLASS = FD 33
|
||||
B_PARTNER_NAME = FD 34
|
||||
B_ATK_TRAINER_NAME = FD 35
|
||||
B_ATK_TRAINER_CLASS = FD 36
|
||||
B_ATK_TEAM1 = FD 37
|
||||
B_ATK_TEAM2 = FD 38
|
||||
B_DEF_NAME = FD 39
|
||||
B_DEF_TEAM1 = FD 3A
|
||||
B_DEF_TEAM2 = FD 3B
|
||||
|
||||
@ indicates the end of a town/city name (before " TOWN" or " CITY")
|
||||
|
||||
@@ -2789,34 +2789,37 @@ BattleScript_RainContinuesOrEndsEnd::
|
||||
end2
|
||||
|
||||
BattleScript_DamagingWeatherContinues::
|
||||
printfromtable gSandstormHailContinuesStringIds
|
||||
printfromtable gSandStormHailSnowContinuesStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation_var BS_ATTACKER, sB_ANIM_ARG1
|
||||
setbyte gBattleCommunication, 0
|
||||
BattleScript_DamagingWeatherLoop::
|
||||
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1
|
||||
weatherdamage
|
||||
jumpifword CMP_EQUAL, gBattleMoveDamage, NULL, BattleScript_DamagingWeatherContinuesEnd
|
||||
printfromtable gSandstormHailDmgStringIds
|
||||
jumpifword CMP_EQUAL, gBattleMoveDamage, 0, BattleScript_DamagingWeatherLoopIncrement
|
||||
jumpifword CMP_COMMON_BITS gBattleMoveDamage, 1 << 31, BattleScript_DamagingWeatherHeal
|
||||
printfromtable gSandStormHailDmgStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
effectivenesssound
|
||||
hitanimation BS_ATTACKER
|
||||
goto BattleScript_DamagingWeatherHpChange
|
||||
BattleScript_DamagingWeatherHeal:
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_ICEBODYHPGAIN
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_DamagingWeatherHpChange:
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
tryfaintmon BS_ATTACKER
|
||||
checkteamslost BattleScript_DamagingWeatherContinuesEnd
|
||||
BattleScript_DamagingWeatherContinuesEnd::
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_WeatherDamageEndedBattle
|
||||
checkteamslost BattleScript_DamagingWeatherLoopIncrement
|
||||
BattleScript_DamagingWeatherLoopIncrement::
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd
|
||||
addbyte gBattleCommunication, 1
|
||||
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
|
||||
BattleScript_WeatherDamageEndedBattle::
|
||||
bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
end2
|
||||
|
||||
BattleScript_SandStormHailEnds::
|
||||
printfromtable gSandstormHailEndStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_DamagingWeatherContinuesEnd::
|
||||
bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_SunlightContinues::
|
||||
@@ -3208,6 +3211,7 @@ BattleScript_WishButFullHp::
|
||||
BattleScript_IngrainTurnHeal::
|
||||
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL
|
||||
printstring STRINGID_PKMNABSORBEDNUTRIENTS
|
||||
BattleScript_TurnHeal:
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
||||
healthbarupdate BS_ATTACKER
|
||||
@@ -3456,6 +3460,7 @@ BattleScript_PrintPayDayMoneyString::
|
||||
return
|
||||
|
||||
BattleScript_WrapTurnDmg::
|
||||
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_DoTurnDmgEnd
|
||||
playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1
|
||||
printstring STRINGID_PKMNHURTBY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
@@ -6167,12 +6172,6 @@ BattleScript_SteelsurgeDefog::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_TerrainEnds_Ret::
|
||||
printfromtable gTerrainStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
||||
return
|
||||
|
||||
BattleScript_RaiseStatOnFaintingTarget::
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_RaiseStatOnFaintingTarget_End
|
||||
copybyte gBattlerAbility, gBattlerAttacker
|
||||
@@ -6423,3 +6422,256 @@ BattleScript_ExtremelyHarshSunlightWasNotLessened:
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_GrassyTerrainHeals::
|
||||
setbyte gBattleCommunication, 0
|
||||
BattleScript_GrassyTerrainLoop:
|
||||
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1
|
||||
checkgrassyterrainheal BS_ATTACKER, BattleScript_GrassyTerrainLoopIncrement
|
||||
printstring STRINGID_GRASSYTERRAINHEALS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_GrassyTerrainHpChange:
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
BattleScript_GrassyTerrainLoopIncrement::
|
||||
addbyte gBattleCommunication, 1
|
||||
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_GrassyTerrainLoop
|
||||
BattleScript_GrassyTerrainLoopEnd::
|
||||
bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_PERMANENT, BattleScript_GrassyTerrainHealEnd
|
||||
BattleScript_GrassyTerrainHealEnd:
|
||||
end2
|
||||
|
||||
BattleScript_TerrainEnds_Ret::
|
||||
printfromtable gTerrainStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
||||
return
|
||||
|
||||
BattleScript_TerrainEnds::
|
||||
call BattleScript_TerrainEnds_Ret
|
||||
end2
|
||||
|
||||
BattleScript_LuckyChantEnds::
|
||||
printstring STRINGID_LUCKYCHANTENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_TailwindEnds::
|
||||
printstring STRINGID_TAILWINDENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_TrickRoomEnds::
|
||||
printstring STRINGID_TRICKROOMENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_WonderRoomEnds::
|
||||
printstring STRINGID_WONDERROOMENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_MagicRoomEnds::
|
||||
printstring STRINGID_MAGICROOMENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_SandStormHailSnowEnds::
|
||||
printfromtable gSandStormHailSnowEndStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_DamageNonTypesContinues::
|
||||
setbyte gBattleCommunication, 0
|
||||
BattleScript_DamageNonTypesLoop::
|
||||
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1
|
||||
damagenontypes
|
||||
jumpifword CMP_EQUAL, gBattleMoveDamage, 0, BattleScript_DamageNonTypesLoopIncrement
|
||||
printfromtable gDamageNonTypesDmgStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
effectivenesssound
|
||||
hitanimation BS_ATTACKER
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
tryfaintmon BS_ATTACKER
|
||||
checkteamslost BattleScript_DamageNonTypesLoopIncrement
|
||||
BattleScript_DamageNonTypesLoopIncrement::
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamageNonTypesContinuesEnd
|
||||
addbyte gBattleCommunication, 1
|
||||
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamageNonTypesLoop
|
||||
BattleScript_DamageNonTypesContinuesEnd::
|
||||
bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
end2
|
||||
|
||||
BattleScript_MudSportEnds::
|
||||
printstring STRINGID_MUDSPORTENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_WaterSportEnds::
|
||||
printstring STRINGID_WATERSPORTENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_GravityEnds::
|
||||
printstring STRINGID_GRAVITYENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_AffectionBasedStatusHeal::
|
||||
jumpifstatus BS_ATTACKER, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_AffectionBasedStatus_HealPoisonString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_AffectionBasedStatus_HealSleepString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_PARALYSIS, BattleScript_AffectionBasedStatus_HealParalysisString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_BURN, BattleScript_AffectionBasedStatus_HealBurnString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_FREEZE, BattleScript_AffectionBasedStatus_HealFreezeString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_FROSTBITE, BattleScript_AffectionBasedStatus_HealFrostbiteString
|
||||
end2
|
||||
BattleScript_AffectionBasedStatus_HealPoisonString:
|
||||
printstring STRINGID_ATTACKEREXPELLEDTHEPOISON
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealSleepString:
|
||||
printstring STRINGID_ATTACKERSHOOKITSELFAWAKE
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealParalysisString:
|
||||
printstring STRINGID_ATTACKERBROKETHROUGHPARALYSIS
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealBurnString:
|
||||
printstring STRINGID_ATTACKERHEALEDITSBURN
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealFreezeString:
|
||||
printstring STRINGID_ATTACKERMELTEDTHEICE
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealFrostbiteString:
|
||||
printstring STRINGID_ATTACKERMELTEDTHEICE
|
||||
BattleScript_AffectionBasedStatusHeal_Continue:
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
clearstatus BS_ATTACKER
|
||||
waitstate
|
||||
updatestatusicon BS_ATTACKER
|
||||
waitstate
|
||||
end2
|
||||
|
||||
BattleScript_TheRainbowDisappeared::
|
||||
printstring STRINGID_THERAINBOWDISAPPEARED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_TheSeaOfFireDisappeared::
|
||||
printstring STRINGID_THESEAOFFIREDISAPPEARED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_TheSwampDisappeared::
|
||||
printstring STRINGID_THESWAMPDISAPPEARED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_AquaRingHeal::
|
||||
playanimation BS_ATTACKER, B_ANIM_WISH_HEAL @ B_ANIM_AQUA_RING_HEAL @ TODO: Animation
|
||||
printstring STRINGID_AQUARINGHEAL
|
||||
goto BattleScript_TurnHeal
|
||||
|
||||
BattleScript_PoisonHealActivates::
|
||||
copybyte gBattlerAbility, gBattlerAttacker
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_POISONHEALHPUP
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
statusanimation BS_ATTACKER
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
end2
|
||||
|
||||
BattleScript_OctolockEndTurn::
|
||||
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE
|
||||
setstatchanger STAT_DEF, 1, TRUE
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctolockTryLowerSpDef
|
||||
BattleScript_OctolockTryLowerDef:
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_OctolockTryLowerSpDef:
|
||||
setstatchanger STAT_SPDEF, 1, TRUE
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctlockTurnDmgEnd
|
||||
BattleScript_OctolockTurnDmgPrintMsg:
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_OctlockTurnDmgEnd:
|
||||
end2
|
||||
|
||||
BattleScript_EmbargoEndTurn::
|
||||
printstring STRINGID_EMBARGOENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_TelekinesisEndTurn::
|
||||
printstring STRINGID_TELEKINESISENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_BufferEndTurn::
|
||||
printstring STRINGID_BUFFERENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_FrostbiteTurnDmg::
|
||||
printstring STRINGID_PKMNHURTBYFROSTBITE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_DoStatusTurnDmg
|
||||
|
||||
BattleScript_TerrainPreventsEnd2::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
printfromtable gTerrainPreventsStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_ThroatChopEndTurn::
|
||||
printstring STRINGID_THROATCHOPENDS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_SlowStartEnds::
|
||||
pause 5
|
||||
copybyte gBattlerAbility, gBattlerAttacker
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_SLOWSTARTEND
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_SaltCureExtraDamage::
|
||||
playanimation BS_TARGET, B_ANIM_MON_HIT, NULL @ B_ANIM_SALT_CURE_DAMAGE, NULL @ TODO: animation
|
||||
waitanimation
|
||||
call BattleScript_HurtTarget_NoString
|
||||
printstring STRINGID_TARGETISHURTBYSALTCURE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_SyrupBombEndTurn::
|
||||
flushtextbox
|
||||
playanimation BS_ATTACKER, B_ANIM_MON_HIT @ B_ANIM_SYRUP_BOMB_SPEED_DROP @ TODO: animation
|
||||
setstatchanger STAT_SPEED, 1, TRUE
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_SyrupBombTurnDmgEnd
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_SyrupBombTurnDmgEnd:
|
||||
end2
|
||||
|
||||
BattleScript_TormentEnds::
|
||||
printstring STRINGID_TORMENTEDNOMORE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_HurtByTheSeaOfFire::
|
||||
printstring STRINGID_HURTBYTHESEAOFFIRE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_DoTurnDmg
|
||||
|
||||
BattleScript_HurtTarget_NoString:
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
tryfaintmon BS_TARGET
|
||||
return
|
||||
|
||||
|
||||
BIN
graphics/battle_interface/dynamax_trigger.png
Normal file
BIN
graphics/battle_interface/dynamax_trigger.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.7 KiB |
@@ -13,6 +13,7 @@
|
||||
#include "battle_gfx_sfx_util.h"
|
||||
#include "battle_util2.h"
|
||||
#include "battle_bg.h"
|
||||
#include "battle_dynamax.h"
|
||||
|
||||
/*
|
||||
Banks are a name given to what could be called a 'battlerId' or 'monControllerId'.
|
||||
@@ -567,7 +568,7 @@ struct BattleStruct
|
||||
u8 turnEffectsBattlerId;
|
||||
u8 filler2; // unused
|
||||
u8 turnCountersTracker;
|
||||
u8 wrappedMove[MAX_BATTLERS_COUNT * 2]; // Leftover from Ruby's ewram access.
|
||||
u16 wrappedMove[MAX_BATTLERS_COUNT];
|
||||
u8 moveTarget[MAX_BATTLERS_COUNT];
|
||||
u8 expGetterMonId;
|
||||
u8 field_11; // unused
|
||||
@@ -753,6 +754,13 @@ extern struct BattleStruct *gBattleStruct;
|
||||
gBattleMons[battlerId].type3 = TYPE_MYSTERY; \
|
||||
}
|
||||
|
||||
#define RESTORE_BATTLER_TYPE(battlerId) \
|
||||
{ \
|
||||
gBattleMons[battlerId].type1 = gSpeciesInfo[gBattleMons[battlerId].species].types[0]; \
|
||||
gBattleMons[battlerId].type2 = gSpeciesInfo[gBattleMons[battlerId].species].types[1]; \
|
||||
gBattleMons[battlerId].type3 = TYPE_MYSTERY; \
|
||||
}
|
||||
|
||||
#define IS_BATTLER_PROTECTED(battlerId)(gProtectStructs[battlerId].protected \
|
||||
|| gSideStatuses[GetBattlerSide(battlerId)] & SIDE_STATUS_WIDE_GUARD \
|
||||
|| gSideStatuses[GetBattlerSide(battlerId)] & SIDE_STATUS_QUICK_GUARD \
|
||||
|
||||
@@ -87,6 +87,6 @@ enum MaxMoveEffect
|
||||
// void CreateDynamaxTriggerSprite(u8, bool8);
|
||||
// void HideDynamaxTriggerSprite(void);
|
||||
// bool32 IsDynamaxTriggerSpriteActive(void);
|
||||
// void DestroyDynamaxTriggerSprite(void);
|
||||
void DestroyDynamaxTriggerSprite(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -51,6 +51,22 @@ enum
|
||||
#define TAG_HEALTHBOX_PAL TAG_HEALTHBOX_PLAYER1_TILE
|
||||
#define TAG_HEALTHBAR_PAL TAG_HEALTHBAR_PLAYER1_TILE
|
||||
|
||||
#define TAG_MEGA_TRIGGER_TILE 0xD777
|
||||
#define TAG_MEGA_INDICATOR_TILE 0xD778
|
||||
#define TAG_ALPHA_INDICATOR_TILE 0xD779
|
||||
#define TAG_OMEGA_INDICATOR_TILE 0xD77A
|
||||
#define TAG_ZMOVE_TRIGGER_TILE 0xD77B
|
||||
#define TAG_BURST_TRIGGER_TILE 0xD77C
|
||||
#define TAG_DYNAMAX_TRIGGER_TILE 0xD77D
|
||||
#define TAG_DYNAMAX_INDICATOR_TILE 0xD77E
|
||||
|
||||
#define TAG_MEGA_TRIGGER_PAL 0xD777
|
||||
#define TAG_MEGA_INDICATOR_PAL 0xD778
|
||||
#define TAG_MISC_INDICATOR_PAL 0xD779 // Alpha, Omega, and Dynamax indicators use the same palette as each of them only uses 4 different colors.
|
||||
#define TAG_ZMOVE_TRIGGER_PAL 0xD77B
|
||||
#define TAG_BURST_TRIGGER_PAL 0xD77C
|
||||
#define TAG_DYNAMAX_TRIGGER_PAL 0xD77D
|
||||
|
||||
enum
|
||||
{
|
||||
HEALTHBOX_ALL,
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#ifndef GUARD_BATTLE_MAIN_H
|
||||
#define GUARD_BATTLE_MAIN_H
|
||||
|
||||
#include "constants/abilities.h"
|
||||
#include "pokemon.h"
|
||||
#include "data.h"
|
||||
|
||||
struct TrainerMoney
|
||||
{
|
||||
@@ -97,4 +98,7 @@ s32 GetWhichBattlerFasterArgs(u32 battler1, u32 battler2, bool32 ignoreChosenMov
|
||||
u32 holdEffectBattler1, u32 holdEffectBattler2, u32 speedBattler1, u32 speedBattler2, s32 priority1, s32 priority2);
|
||||
s32 GetWhichBattlerFaster(u32 battler1, u32 battler2, bool32 ignoreChosenMoves);
|
||||
|
||||
|
||||
extern const struct TypeInfo gTypesInfo[NUMBER_OF_MON_TYPES];
|
||||
|
||||
#endif // GUARD_BATTLE_MAIN_H
|
||||
|
||||
@@ -55,7 +55,16 @@
|
||||
#define B_TXT_TRAINER2_LOSE_TEXT 0x2E
|
||||
#define B_TXT_TRAINER2_WIN_TEXT 0x2F
|
||||
#define B_TXT_BUFF3 0x30
|
||||
#define B_TXT_TRAINER2_CLASS 0x31
|
||||
#define B_TXT_TRAINER2_NAME 0x32
|
||||
#define B_TXT_PARTNER_CLASS 0x33
|
||||
#define B_TXT_PARTNER_NAME 0x34
|
||||
#define B_TXT_ATK_TRAINER_NAME 0x35
|
||||
#define B_TXT_ATK_TRAINER_CLASS 0x36
|
||||
#define B_TXT_ATK_TEAM1 0x37 // Your/The opposing
|
||||
#define B_TXT_ATK_TEAM2 0x38 // your/the opposing
|
||||
#define B_TXT_DEF_NAME 0x39
|
||||
#define B_TXT_DEF_TEAM1 0x3A // Your/The opposing
|
||||
#define B_TXT_DEF_TEAM2 0x3B // your/the opposing
|
||||
|
||||
// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3
|
||||
@@ -96,7 +105,8 @@
|
||||
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
|
||||
textVar[1] = B_BUFF_ABILITY; \
|
||||
textVar[2] = abilityId; \
|
||||
textVar[3] = B_BUFF_EOS; \
|
||||
textVar[3] = (abilityId & 0xFF00) >> 8; \
|
||||
textVar[4] = B_BUFF_EOS; \
|
||||
}
|
||||
|
||||
#define PREPARE_TYPE_BUFFER(textVar, typeId) \
|
||||
@@ -145,7 +155,7 @@
|
||||
{ \
|
||||
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
|
||||
textVar[1] = B_BUFF_STRING; \
|
||||
textVar[2] = stringId; \
|
||||
textVar[2] = stringId & 0xFF; \
|
||||
textVar[3] = (stringId & 0xFF00) >> 8; \
|
||||
textVar[4] = B_BUFF_EOS; \
|
||||
}
|
||||
@@ -177,20 +187,20 @@
|
||||
textVar[4] = B_BUFF_EOS; \
|
||||
}
|
||||
|
||||
#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \
|
||||
#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, battler, partyId) \
|
||||
{ \
|
||||
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
|
||||
textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \
|
||||
textVar[2] = bank; \
|
||||
textVar[2] = battler; \
|
||||
textVar[3] = partyId; \
|
||||
textVar[4] = B_BUFF_EOS; \
|
||||
}
|
||||
|
||||
#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \
|
||||
#define PREPARE_MON_NICK_BUFFER(textVar, battler, partyId) \
|
||||
{ \
|
||||
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
|
||||
textVar[1] = B_BUFF_MON_NICK; \
|
||||
textVar[2] = bank; \
|
||||
textVar[2] = battler; \
|
||||
textVar[3] = partyId; \
|
||||
textVar[4] = B_BUFF_EOS; \
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@ extern const u8 BattleScript_Pausex20[];
|
||||
extern const u8 BattleScript_LevelUp[];
|
||||
extern const u8 BattleScript_RainContinuesOrEnds[];
|
||||
extern const u8 BattleScript_DamagingWeatherContinues[];
|
||||
extern const u8 BattleScript_SandStormHailEnds[];
|
||||
extern const u8 BattleScript_SunlightContinues[];
|
||||
extern const u8 BattleScript_SunlightFaded[];
|
||||
extern const u8 BattleScript_OverworldWeatherStarts[];
|
||||
@@ -660,8 +659,6 @@ extern const u8 BattleScript_ThrashConfuses[];
|
||||
extern const u8 BattleScript_MoveUsedIsConfused[];
|
||||
extern const u8 BattleScript_MoveUsedIsConfusedNoMore[];
|
||||
extern const u8 BattleScript_PrintPayDayMoneyString[];
|
||||
extern const u8 BattleScript_WrapTurnDmg[];
|
||||
extern const u8 BattleScript_WrapEnds[];
|
||||
extern const u8 BattleScript_MoveUsedIsInLove[];
|
||||
extern const u8 BattleScript_MoveUsedIsInLoveCantAttack[];
|
||||
extern const u8 BattleScript_NightmareTurnDmg[];
|
||||
@@ -679,7 +676,6 @@ extern const u8 BattleScript_MoveEffectParalysis[];
|
||||
extern const u8 BattleScript_MoveEffectUproar[];
|
||||
extern const u8 BattleScript_MoveEffectToxic[];
|
||||
extern const u8 BattleScript_MoveEffectPayDay[];
|
||||
extern const u8 BattleScript_MoveEffectWrap[];
|
||||
extern const u8 BattleScript_MoveEffectConfusion[];
|
||||
extern const u8 BattleScript_MoveEffectRecoil[];
|
||||
extern const u8 BattleScript_DoRecoil33[];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -31,6 +31,23 @@ static inline u16 SanitizeTrainerId(u16 trainerId)
|
||||
return trainerId;
|
||||
}
|
||||
|
||||
struct TypeInfo
|
||||
{
|
||||
u8 name[TYPE_NAME_LENGTH + 1];
|
||||
u8 generic[17];
|
||||
u8 palette;
|
||||
u16 zMove;
|
||||
u16 maxMove;
|
||||
//u16 enhanceItem;
|
||||
//u16 berry;
|
||||
//u16 gem;
|
||||
//u16 plate;
|
||||
//u16 memory;
|
||||
//u16 zCrystal;
|
||||
//u16 teraShard;
|
||||
//u16 arceusForm;
|
||||
};
|
||||
|
||||
// extern const struct MonCoords gMonFrontPicCoords[];
|
||||
// extern const struct CompressedSpriteSheet gMonFrontPicTable[];
|
||||
// extern const struct MonCoords gMonBackPicCoords[];
|
||||
|
||||
@@ -21,15 +21,10 @@ bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette
|
||||
bool8 LoadCompressedSpritePaletteUsingHeapWithTag(const u32 *pal, u16 tag);
|
||||
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer);
|
||||
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
|
||||
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *buffer);
|
||||
|
||||
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality);
|
||||
void HandleLoadSpecialPokePic_DontHandleDeoxys(bool32 isFrontPic, void *dest, s32 species, u32 personality);
|
||||
|
||||
void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic);
|
||||
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
|
||||
void LoadSpecialPokePic_DontHandleDeoxys(void *dest, s32 species, u32 personality, bool8 isFrontPic);
|
||||
|
||||
u32 GetDecompressedDataSize(const u8 *ptr);
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ u16 FreeAndDestroyMonPicSprite(u16);
|
||||
u16 FreeAndDestroyTrainerPicSprite(u16);
|
||||
u16 PlayerGenderToFrontTrainerPicId(u8 gender, bool8 getClass);
|
||||
u16 LoadMonPicInWindow(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId);
|
||||
u16 CreateMonPicSprite(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys);
|
||||
u16 CreateMonPicSprite_HandleDeoxys(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
|
||||
u16 CreateMonPicSprite(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
|
||||
|
||||
#endif // GUARD_TRAINER_POKEMON_SPRITES_H
|
||||
|
||||
@@ -1917,30 +1917,12 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
|
||||
if (!isBackpic)
|
||||
{
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, isShiny, personality), OBJ_PLTT_ID(palette), PLTT_SIZE_4BPP);
|
||||
if (ignoreDeoxys == TRUE || ShouldIgnoreDeoxysForm(DEOXYS_CHECK_BATTLE_ANIM, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
||||
LoadSpecialPokePic_DontHandleDeoxys(gMonSpritesGfxPtr->multiUseBuffer,
|
||||
species,
|
||||
personality,
|
||||
TRUE);
|
||||
else
|
||||
LoadSpecialPokePic(gMonSpritesGfxPtr->multiUseBuffer,
|
||||
species,
|
||||
personality,
|
||||
TRUE);
|
||||
LoadSpecialPokePic(gMonSpritesGfxPtr->multiUseBuffer, species, personality, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, isShiny, personality), OBJ_PLTT_ID(palette), PLTT_SIZE_4BPP);
|
||||
if (ignoreDeoxys == TRUE || ShouldIgnoreDeoxysForm(DEOXYS_CHECK_BATTLE_ANIM, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
||||
LoadSpecialPokePic_DontHandleDeoxys(gMonSpritesGfxPtr->multiUseBuffer,
|
||||
species,
|
||||
personality,
|
||||
FALSE);
|
||||
else
|
||||
LoadSpecialPokePic(gMonSpritesGfxPtr->multiUseBuffer,
|
||||
species,
|
||||
personality,
|
||||
FALSE);
|
||||
LoadSpecialPokePic(gMonSpritesGfxPtr->multiUseBuffer, species, personality, FALSE);
|
||||
}
|
||||
RequestDma3Copy(gMonSpritesGfxPtr->multiUseBuffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1);
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer);
|
||||
|
||||
@@ -2413,6 +2413,7 @@ static void PlayerHandleChooseAction(void)
|
||||
for (i = 0; i < 4; ++i)
|
||||
ActionSelectionDestroyCursorAt(i);
|
||||
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
|
||||
PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_ACTION_PROMPT);
|
||||
}
|
||||
|
||||
1265
src/battle_dynamax.c
Normal file
1265
src/battle_dynamax.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -339,9 +339,8 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
|
||||
}
|
||||
isShiny = GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
position = GetBattlerPosition(battlerId);
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(TRUE,
|
||||
gMonSpritesGfxPtr->sprites[position],
|
||||
species, currentPersonality);
|
||||
HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites[position], species, currentPersonality);
|
||||
|
||||
paletteOffset = OBJ_PLTT_ID(battlerId);
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE)
|
||||
lzPaletteData = GetMonFrontSpritePal(mon);
|
||||
@@ -383,14 +382,8 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
|
||||
}
|
||||
isShiny = GetMonData(mon, MON_DATA_IS_SHINY, NULL);
|
||||
position = GetBattlerPosition(battlerId);
|
||||
if (ShouldIgnoreDeoxysForm(DEOXYS_CHECK_BATTLE_SPRITE, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE)
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(FALSE,
|
||||
gMonSpritesGfxPtr->sprites[position],
|
||||
species, currentPersonality);
|
||||
else
|
||||
HandleLoadSpecialPokePic(FALSE,
|
||||
gMonSpritesGfxPtr->sprites[position],
|
||||
species, currentPersonality);
|
||||
HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->sprites[position], species, currentPersonality);
|
||||
|
||||
paletteOffset = OBJ_PLTT_ID(battlerId);
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE)
|
||||
lzPaletteData = GetMonFrontSpritePal(mon);
|
||||
|
||||
@@ -290,6 +290,310 @@ const struct OamData gOamData_BattlerPlayer =
|
||||
.paletteNum = 2,
|
||||
.affineParam = 0,
|
||||
};
|
||||
// .generic is large enough that the text for TYPE_ELECTRIC will exceed TEXT_BUFF_ARRAY_COUNT.
|
||||
const struct TypeInfo gTypesInfo[NUMBER_OF_MON_TYPES] =
|
||||
{
|
||||
[TYPE_NORMAL] =
|
||||
{
|
||||
.name = _("Normal"),
|
||||
.generic = _("a NORMAL move"),
|
||||
.palette = 13,
|
||||
.zMove = MOVE_BREAKNECK_BLITZ,
|
||||
.maxMove = MOVE_MAX_STRIKE,
|
||||
//.enhanceItem = ITEM_SILK_SCARF,
|
||||
//.berry = ITEM_CHILAN_BERRY,
|
||||
//.gem = ITEM_NORMAL_GEM,
|
||||
//.zCrystal = ITEM_NORMALIUM_Z,
|
||||
//.teraShard = ITEM_NORMAL_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_NORMAL,
|
||||
},
|
||||
[TYPE_FIGHTING] =
|
||||
{
|
||||
.name = _("Fight"),
|
||||
.generic = _("a FIGHTING move"),
|
||||
.palette = 13,
|
||||
.zMove = MOVE_ALL_OUT_PUMMELING,
|
||||
.maxMove = MOVE_MAX_KNUCKLE,
|
||||
//.enhanceItem = ITEM_BLACK_BELT,
|
||||
//.berry = ITEM_CHOPLE_BERRY,
|
||||
//.gem = ITEM_FIGHTING_GEM,
|
||||
//.zCrystal = ITEM_FIGHTINIUM_Z,
|
||||
//.plate = ITEM_FIST_PLATE,
|
||||
//.memory = ITEM_FIGHTING_MEMORY,
|
||||
//.teraShard = ITEM_FIGHTING_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_FIGHTING,
|
||||
},
|
||||
[TYPE_FLYING] =
|
||||
{
|
||||
.name = _("Flying"),
|
||||
.generic = _("a FLYING move"),
|
||||
.palette = 14,
|
||||
.zMove = MOVE_SUPERSONIC_SKYSTRIKE,
|
||||
.maxMove = MOVE_MAX_AIRSTREAM,
|
||||
//.enhanceItem = ITEM_SHARP_BEAK,
|
||||
//.berry = ITEM_COBA_BERRY,
|
||||
//.gem = ITEM_FLYING_GEM,
|
||||
//.zCrystal = ITEM_FLYINIUM_Z,
|
||||
//.plate = ITEM_SKY_PLATE,
|
||||
//.memory = ITEM_FLYING_MEMORY,
|
||||
//.teraShard = ITEM_FLYING_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_FLYING,
|
||||
},
|
||||
[TYPE_POISON] =
|
||||
{
|
||||
.name = _("Poison"),
|
||||
.generic = _("a POISON move"),
|
||||
.palette = 14,
|
||||
.zMove = MOVE_ACID_DOWNPOUR,
|
||||
.maxMove = MOVE_MAX_OOZE,
|
||||
//.enhanceItem = ITEM_POISON_BARB,
|
||||
//.berry = ITEM_KEBIA_BERRY,
|
||||
//.gem = ITEM_POISON_GEM,
|
||||
//.zCrystal = ITEM_POISONIUM_Z,
|
||||
//.plate = ITEM_TOXIC_PLATE,
|
||||
//.memory = ITEM_POISON_MEMORY,
|
||||
//.teraShard = ITEM_POISON_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_POISON,
|
||||
},
|
||||
[TYPE_GROUND] =
|
||||
{
|
||||
.name = _("Ground"),
|
||||
.generic = _("a GROUND move"),
|
||||
.palette = 13,
|
||||
.zMove = MOVE_TECTONIC_RAGE,
|
||||
.maxMove = MOVE_MAX_QUAKE,
|
||||
//.enhanceItem = ITEM_SOFT_SAND,
|
||||
//.berry = ITEM_SHUCA_BERRY,
|
||||
//.gem = ITEM_GROUND_GEM,
|
||||
//.zCrystal = ITEM_GROUNDIUM_Z,
|
||||
//.plate = ITEM_EARTH_PLATE,
|
||||
//.memory = ITEM_GROUND_MEMORY,
|
||||
//.teraShard = ITEM_GROUND_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_GROUND,
|
||||
},
|
||||
[TYPE_ROCK] =
|
||||
{
|
||||
.name = _("Rock"),
|
||||
.generic = _("a ROCK move"),
|
||||
.palette = 13,
|
||||
.zMove = MOVE_CONTINENTAL_CRUSH,
|
||||
.maxMove = MOVE_MAX_ROCKFALL,
|
||||
//.enhanceItem = ITEM_HARD_STONE,
|
||||
//.berry = ITEM_CHARTI_BERRY,
|
||||
//.gem = ITEM_ROCK_GEM,
|
||||
//.zCrystal = ITEM_ROCKIUM_Z,
|
||||
//.plate = ITEM_STONE_PLATE,
|
||||
//.memory = ITEM_ROCK_MEMORY,
|
||||
//.teraShard = ITEM_ROCK_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_ROCK,
|
||||
},
|
||||
[TYPE_BUG] =
|
||||
{
|
||||
.name = _("Bug"),
|
||||
.generic = _("a BUG move"),
|
||||
.palette = 15,
|
||||
.zMove = MOVE_SAVAGE_SPIN_OUT,
|
||||
.maxMove = MOVE_MAX_FLUTTERBY,
|
||||
//.enhanceItem = ITEM_SILVER_POWDER,
|
||||
//.berry = ITEM_TANGA_BERRY,
|
||||
//.gem = ITEM_BUG_GEM,
|
||||
//.zCrystal = ITEM_BUGINIUM_Z,
|
||||
//.plate = ITEM_INSECT_PLATE,
|
||||
//.memory = ITEM_BUG_MEMORY,
|
||||
//.teraShard = ITEM_BUG_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_BUG,
|
||||
},
|
||||
[TYPE_GHOST] =
|
||||
{
|
||||
.name = _("Ghost"),
|
||||
.generic = _("a GHOST move"),
|
||||
.palette = 14,
|
||||
.zMove = MOVE_NEVER_ENDING_NIGHTMARE,
|
||||
.maxMove = MOVE_MAX_PHANTASM,
|
||||
//.enhanceItem = ITEM_SPELL_TAG,
|
||||
//.berry = ITEM_KASIB_BERRY,
|
||||
//.gem = ITEM_GHOST_GEM,
|
||||
//.zCrystal = ITEM_GHOSTIUM_Z,
|
||||
//.plate = ITEM_SPOOKY_PLATE,
|
||||
//.memory = ITEM_GHOST_MEMORY,
|
||||
//.teraShard = ITEM_GHOST_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_GHOST,
|
||||
},
|
||||
[TYPE_STEEL] =
|
||||
{
|
||||
.name = _("Steel"),
|
||||
.generic = _("a STEEL move"),
|
||||
.palette = 13,
|
||||
.zMove = MOVE_CORKSCREW_CRASH,
|
||||
.maxMove = MOVE_MAX_STEELSPIKE,
|
||||
//.enhanceItem = ITEM_METAL_COAT,
|
||||
//.berry = ITEM_BABIRI_BERRY,
|
||||
//.gem = ITEM_STEEL_GEM,
|
||||
//.zCrystal = ITEM_STEELIUM_Z,
|
||||
//.plate = ITEM_IRON_PLATE,
|
||||
//.memory = ITEM_STEEL_MEMORY,
|
||||
//.teraShard = ITEM_STEEL_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_STEEL,
|
||||
},
|
||||
[TYPE_MYSTERY] =
|
||||
{
|
||||
.name = _("???"),
|
||||
.generic = _("a ??? move"),
|
||||
.palette = 15,
|
||||
},
|
||||
[TYPE_FIRE] =
|
||||
{
|
||||
.name = _("Fire"),
|
||||
.generic = _("a FIRE move"),
|
||||
.palette = 13,
|
||||
.zMove = MOVE_INFERNO_OVERDRIVE,
|
||||
.maxMove = MOVE_MAX_FLARE,
|
||||
//.enhanceItem = ITEM_CHARCOAL,
|
||||
//.berry = ITEM_OCCA_BERRY,
|
||||
//.gem = ITEM_FIRE_GEM,
|
||||
//.zCrystal = ITEM_FIRIUM_Z,
|
||||
//.plate = ITEM_FLAME_PLATE,
|
||||
//.memory = ITEM_FIRE_MEMORY,
|
||||
//.teraShard = ITEM_FIRE_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_FIRE,
|
||||
},
|
||||
[TYPE_WATER] =
|
||||
{
|
||||
.name = _("Water"),
|
||||
.generic = _("a WATER move"),
|
||||
.palette = 14,
|
||||
.zMove = MOVE_HYDRO_VORTEX,
|
||||
.maxMove = MOVE_MAX_GEYSER,
|
||||
//.enhanceItem = ITEM_MYSTIC_WATER,
|
||||
//.berry = ITEM_PASSHO_BERRY,
|
||||
//.gem = ITEM_WATER_GEM,
|
||||
//.zCrystal = ITEM_WATERIUM_Z,
|
||||
//.plate = ITEM_SPLASH_PLATE,
|
||||
//.memory = ITEM_WATER_MEMORY,
|
||||
//.teraShard = ITEM_WATER_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_WATER,
|
||||
},
|
||||
[TYPE_GRASS] =
|
||||
{
|
||||
.name = _("Grass"),
|
||||
.generic = _("a GRASS move"),
|
||||
.palette = 15,
|
||||
.zMove = MOVE_BLOOM_DOOM,
|
||||
.maxMove = MOVE_MAX_OVERGROWTH,
|
||||
//.enhanceItem = ITEM_MIRACLE_SEED,
|
||||
//.berry = ITEM_RINDO_BERRY,
|
||||
//.gem = ITEM_GRASS_GEM,
|
||||
//.zCrystal = ITEM_GRASSIUM_Z,
|
||||
//.plate = ITEM_MEADOW_PLATE,
|
||||
//.memory = ITEM_GRASS_MEMORY,
|
||||
//.teraShard = ITEM_GRASS_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_GRASS,
|
||||
},
|
||||
[TYPE_ELECTRIC] =
|
||||
{
|
||||
.name = _("Electr"),
|
||||
.generic = _("an ELECTRIC move"),
|
||||
.palette = 13,
|
||||
.zMove = MOVE_GIGAVOLT_HAVOC,
|
||||
.maxMove = MOVE_MAX_LIGHTNING,
|
||||
//.enhanceItem = ITEM_MAGNET,
|
||||
//.berry = ITEM_WACAN_BERRY,
|
||||
//.gem = ITEM_ELECTRIC_GEM,
|
||||
//.zCrystal = ITEM_ELECTRIUM_Z,
|
||||
//.plate = ITEM_ZAP_PLATE,
|
||||
//.memory = ITEM_ELECTRIC_MEMORY,
|
||||
//.teraShard = ITEM_ELECTRIC_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_ELECTRIC,
|
||||
},
|
||||
[TYPE_PSYCHIC] =
|
||||
{
|
||||
.name = _("Psychc"),
|
||||
.generic = _("a PSYCHIC move"),
|
||||
.palette = 14,
|
||||
.zMove = MOVE_SHATTERED_PSYCHE,
|
||||
.maxMove = MOVE_MAX_MINDSTORM,
|
||||
//.enhanceItem = ITEM_TWISTED_SPOON,
|
||||
//.berry = ITEM_PAYAPA_BERRY,
|
||||
//.gem = ITEM_PSYCHIC_GEM,
|
||||
//.zCrystal = ITEM_PSYCHIUM_Z,
|
||||
//.plate = ITEM_MIND_PLATE,
|
||||
//.memory = ITEM_PSYCHIC_MEMORY,
|
||||
//.teraShard = ITEM_PSYCHIC_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_PSYCHIC,
|
||||
},
|
||||
[TYPE_ICE] =
|
||||
{
|
||||
.name = _("Ice"),
|
||||
.generic = _("an ICE move"),
|
||||
.palette = 14,
|
||||
.zMove = MOVE_SUBZERO_SLAMMER,
|
||||
.maxMove = MOVE_MAX_HAILSTORM,
|
||||
//.enhanceItem = ITEM_NEVER_MELT_ICE,
|
||||
//.berry = ITEM_YACHE_BERRY,
|
||||
//.gem = ITEM_ICE_GEM,
|
||||
//.zCrystal = ITEM_ICIUM_Z,
|
||||
//.plate = ITEM_ICICLE_PLATE,
|
||||
//.memory = ITEM_ICE_MEMORY,
|
||||
//.teraShard = ITEM_ICE_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_ICE,
|
||||
},
|
||||
[TYPE_DRAGON] =
|
||||
{
|
||||
.name = _("Dragon"),
|
||||
.generic = _("a DRAGON move"),
|
||||
.palette = 15,
|
||||
.zMove = MOVE_DEVASTATING_DRAKE,
|
||||
.maxMove = MOVE_MAX_WYRMWIND,
|
||||
//.enhanceItem = ITEM_DRAGON_FANG,
|
||||
//.berry = ITEM_HABAN_BERRY,
|
||||
//.gem = ITEM_DRAGON_GEM,
|
||||
//.zCrystal = ITEM_DRAGONIUM_Z,
|
||||
//.plate = ITEM_DRACO_PLATE,
|
||||
//.memory = ITEM_DRAGON_MEMORY,
|
||||
//.teraShard = ITEM_DRAGON_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_DRAGON,
|
||||
},
|
||||
[TYPE_DARK] =
|
||||
{
|
||||
.name = _("Dark"),
|
||||
.generic = _("a DARK move"),
|
||||
.palette = 13,
|
||||
.zMove = MOVE_BLACK_HOLE_ECLIPSE,
|
||||
.maxMove = MOVE_MAX_DARKNESS,
|
||||
//.enhanceItem = ITEM_BLACK_GLASSES,
|
||||
//.berry = ITEM_COLBUR_BERRY,
|
||||
//.gem = ITEM_DARK_GEM,
|
||||
//.zCrystal = ITEM_DARKINIUM_Z,
|
||||
//.plate = ITEM_DREAD_PLATE,
|
||||
//.memory = ITEM_DARK_MEMORY,
|
||||
//.teraShard = ITEM_DARK_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_DARK,
|
||||
},
|
||||
[TYPE_FAIRY] =
|
||||
{
|
||||
.name = _("Fairy"),
|
||||
.generic = _("a FAIRY move"),
|
||||
.palette = 14,
|
||||
.zMove = MOVE_TWINKLE_TACKLE,
|
||||
.maxMove = MOVE_MAX_STARFALL,
|
||||
//.enhanceItem = ITEM_FAIRY_FEATHER,
|
||||
//.berry = ITEM_ROSELI_BERRY,
|
||||
//.gem = ITEM_FAIRY_GEM,
|
||||
//.zCrystal = ITEM_FAIRIUM_Z,
|
||||
//.plate = ITEM_PIXIE_PLATE,
|
||||
//.memory = ITEM_FAIRY_MEMORY,
|
||||
//.teraShard = ITEM_FAIRY_TERA_SHARD,
|
||||
//.arceusForm = SPECIES_ARCEUS_FAIRY,
|
||||
},
|
||||
/*
|
||||
[TYPE_STELLAR] =
|
||||
{
|
||||
.name = _("Stellar"),
|
||||
.teraShard = ITEM_STELLAR_TERA_SHARD,
|
||||
},
|
||||
*/
|
||||
};
|
||||
|
||||
|
||||
static const union AnimCmd sAnim_Unused[] =
|
||||
{
|
||||
|
||||
2430
src/battle_message.c
2430
src/battle_message.c
File diff suppressed because it is too large
Load Diff
@@ -15632,14 +15632,8 @@ static void Cmd_displaydexinfo(void)
|
||||
case 4:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
CreateMonPicSprite_HandleDeoxys(species,
|
||||
gBattleMons[B_POSITION_OPPONENT_LEFT].isShiny,
|
||||
gBattleMons[B_POSITION_OPPONENT_LEFT].personality,
|
||||
TRUE,
|
||||
120,
|
||||
64,
|
||||
0,
|
||||
0xFFFF);
|
||||
struct Pokemon *mon = &gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]];
|
||||
CreateMonPicSprite(species, GetMonData(mon, MON_DATA_IS_SHINY), GetMonData(mon, MON_DATA_PERSONALITY), TRUE, 120, 64, 0, 0xFFFF);
|
||||
CpuFill32(0, gPlttBufferFaded, BG_PLTT_SIZE);
|
||||
BeginNormalPaletteFade(0x1FFFF, 0, 16, 0, RGB_BLACK);
|
||||
ShowBg(0);
|
||||
|
||||
1348
src/battle_util.c
1348
src/battle_util.c
File diff suppressed because it is too large
Load Diff
@@ -8263,37 +8263,37 @@
|
||||
{
|
||||
"min_level": 3,
|
||||
"max_level": 3,
|
||||
"species": "SPECIES_CASTFORM"
|
||||
"species": "SPECIES_DEOXYS"
|
||||
},
|
||||
{
|
||||
"min_level": 3,
|
||||
"max_level": 3,
|
||||
"species": "SPECIES_CASTFORM"
|
||||
"species": "SPECIES_DEOXYS"
|
||||
},
|
||||
{
|
||||
"min_level": 3,
|
||||
"max_level": 3,
|
||||
"species": "SPECIES_MIMIKYU"
|
||||
"species": "SPECIES_DEOXYS_ATTACK"
|
||||
},
|
||||
{
|
||||
"min_level": 3,
|
||||
"max_level": 3,
|
||||
"species": "SPECIES_MIMIKYU"
|
||||
"species": "SPECIES_DEOXYS_ATTACK"
|
||||
},
|
||||
{
|
||||
"min_level": 2,
|
||||
"max_level": 2,
|
||||
"species": "SPECIES_MIMIKYU"
|
||||
"species": "SPECIES_DEOXYS_DEFENSE"
|
||||
},
|
||||
{
|
||||
"min_level": 2,
|
||||
"max_level": 2,
|
||||
"species": "SPECIES_MIMIKYU"
|
||||
"species": "SPECIES_DEOXYS_DEFENSE"
|
||||
},
|
||||
{
|
||||
"min_level": 3,
|
||||
"max_level": 3,
|
||||
"species": "SPECIES_MIMIKYU"
|
||||
"species": "SPECIES_DEOXYS_DEFENSE"
|
||||
},
|
||||
{
|
||||
"min_level": 3,
|
||||
|
||||
@@ -317,18 +317,3 @@ u32 GetDecompressedDataSize(const u8 *ptr)
|
||||
ptr8[3] = 0;
|
||||
return ptr32[0];
|
||||
}
|
||||
|
||||
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *buffer)
|
||||
{
|
||||
DecompressPicFromTable(src, buffer);
|
||||
}
|
||||
|
||||
void HandleLoadSpecialPokePic_DontHandleDeoxys(bool32 isFrontPic, void *dest, s32 species, u32 personality)
|
||||
{
|
||||
LoadSpecialPokePic_DontHandleDeoxys(dest, species, personality, isFrontPic);
|
||||
}
|
||||
|
||||
void LoadSpecialPokePic_DontHandleDeoxys(void *dest, s32 species, u32 personality, bool8 isFrontPic)
|
||||
{
|
||||
LoadSpecialPokePic(dest, species, personality, isFrontPic);
|
||||
}
|
||||
|
||||
@@ -607,7 +607,7 @@ static u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority)
|
||||
|
||||
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
|
||||
{
|
||||
u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, FALSE, 0x8000, TRUE, x, y, 0, species);
|
||||
u16 spriteId = CreateMonPicSprite(species, FALSE, 0x8000, TRUE, x, y, 0, species);
|
||||
PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10);
|
||||
if (spriteId == 0xFFFF)
|
||||
return MAX_SPRITES;
|
||||
@@ -617,7 +617,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
|
||||
|
||||
static u8 CreateMonSprite_FieldMove(u16 species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 subpriority)
|
||||
{
|
||||
u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, isShiny, personality, 1, x, y, 0, species);
|
||||
u16 spriteId = CreateMonPicSprite(species, isShiny, personality, 1, x, y, 0, species);
|
||||
PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10);
|
||||
if (spriteId == 0xFFFF)
|
||||
return MAX_SPRITES;
|
||||
|
||||
@@ -512,7 +512,7 @@ static void Task_Hof_DisplayMon(u8 taskId)
|
||||
dstY = sHallOfFame_MonHalfTeamPositions[currMonId][3];
|
||||
}
|
||||
|
||||
spriteId = CreateMonPicSprite_HandleDeoxys(currMon->species, currMon->isShiny, currMon->personality, 1, srcX, srcY, currMonId, 0xFFFF);
|
||||
spriteId = CreateMonPicSprite(currMon->species, currMon->isShiny, currMon->personality, 1, srcX, srcY, currMonId, 0xFFFF);
|
||||
gSprites[spriteId].data[1] = dstX;
|
||||
gSprites[spriteId].data[2] = dstY;
|
||||
gSprites[spriteId].data[0] = 0;
|
||||
@@ -830,8 +830,7 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
|
||||
posY = sHallOfFame_MonHalfTeamPositions[i][3];
|
||||
}
|
||||
|
||||
spriteId = CreateMonPicSprite_HandleDeoxys(currMon->species, currMon->isShiny, currMon->personality, TRUE, posX,
|
||||
posY, i, 0xFFFF);
|
||||
spriteId = CreateMonPicSprite(currMon->species, currMon->isShiny, currMon->personality, TRUE, posX, posY, i, 0xFFFF);
|
||||
gSprites[spriteId].oam.priority = 1;
|
||||
gTasks[taskId].data[5 + i] = spriteId;
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
#include "tm_case.h"
|
||||
#include "trade.h"
|
||||
#include "union_room.h"
|
||||
#include "constants/abilities.h"
|
||||
#include "constants/battle.h"
|
||||
#include "constants/easy_chat.h"
|
||||
#include "constants/field_effects.h"
|
||||
|
||||
@@ -3109,7 +3109,7 @@ u8 DexScreen_DrawMonAreaPage(void)
|
||||
|
||||
if (monIsCaught)
|
||||
{
|
||||
sPokedexScreenData->windowIds[14] = CreateMonPicSprite_HandleDeoxys(species, FALSE, DexScreen_GetDefaultPersonality(species), TRUE, 40, 104, 0, 0xFFFF);
|
||||
sPokedexScreenData->windowIds[14] = CreateMonPicSprite(species, FALSE, DexScreen_GetDefaultPersonality(species), TRUE, 40, 104, 0, 0xFFFF);
|
||||
gSprites[sPokedexScreenData->windowIds[14]].oam.paletteNum = 2;
|
||||
gSprites[sPokedexScreenData->windowIds[14]].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[sPokedexScreenData->windowIds[14]].oam.matrixNum = 2;
|
||||
|
||||
@@ -4017,21 +4017,7 @@ static void PokeSum_CreateMonPicSprite(void)
|
||||
personality = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PERSONALITY);
|
||||
isShiny = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_SHINY, NULL);
|
||||
|
||||
if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary)
|
||||
{
|
||||
if (sMonSummaryScreen->isEnemyParty == TRUE)
|
||||
spriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, 60, 65, 12, 0xffff, TRUE);
|
||||
else
|
||||
spriteId = CreateMonPicSprite_HandleDeoxys(species, isShiny, personality, TRUE, 60, 65, 12, 0xffff);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ShouldIgnoreDeoxysForm(DEOXYS_CHECK_TRADE_MAIN, sLastViewedMonIndex))
|
||||
spriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, 60, 65, 12, 0xffff, TRUE);
|
||||
else
|
||||
spriteId = CreateMonPicSprite_HandleDeoxys(species, isShiny, personality, TRUE, 60, 65, 12, 0xffff);
|
||||
}
|
||||
|
||||
spriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, 60, 65, 12, 0xffff);
|
||||
FreeSpriteOamMatrix(&gSprites[spriteId]);
|
||||
|
||||
if (!IsMonSpriteNotFlipped(species))
|
||||
|
||||
@@ -756,10 +756,7 @@ static void LoadTradeMonPic(u8 whichParty, u8 state)
|
||||
species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
|
||||
if (whichParty == TRADE_PLAYER)
|
||||
HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites[1], species, personality);
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(TRUE, gMonSpritesGfxPtr->sprites[whichParty * 2 + 1], species, personality);
|
||||
HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites[whichParty * 2 + 1], species, personality);
|
||||
|
||||
LoadCompressedSpritePaletteWithTag(GetMonFrontSpritePal(mon), species);
|
||||
sTradeAnim->monSpecies[whichParty] = species;
|
||||
|
||||
@@ -40,24 +40,11 @@ bool16 ResetAllPicSprites(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys)
|
||||
static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer)
|
||||
{
|
||||
if (!isTrainer)
|
||||
{
|
||||
if (isFrontPic)
|
||||
{
|
||||
if (!ignoreDeoxys)
|
||||
LoadSpecialPokePic(dest, species, personality, isFrontPic);
|
||||
else
|
||||
LoadSpecialPokePic_DontHandleDeoxys(dest, species, personality, isFrontPic);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!ignoreDeoxys)
|
||||
LoadSpecialPokePic(dest, species, personality, isFrontPic);
|
||||
else
|
||||
LoadSpecialPokePic_DontHandleDeoxys(dest, species, personality, isFrontPic);
|
||||
}
|
||||
LoadSpecialPokePic(dest, species, personality, isFrontPic);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -69,11 +56,6 @@ static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool16 DecompressPic_HandleDeoxys(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer)
|
||||
{
|
||||
return DecompressPic(species, personality, isFrontPic, dest, isTrainer, FALSE);
|
||||
}
|
||||
|
||||
void LoadPicPaletteByTagOrSlot(u16 species, bool32 isShiny, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
|
||||
{
|
||||
if (!isTrainer)
|
||||
@@ -120,7 +102,7 @@ void AssignSpriteAnimsTable(bool8 isTrainer)
|
||||
sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0];
|
||||
}
|
||||
|
||||
u16 CreatePicSprite(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys)
|
||||
u16 CreatePicSprite(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
|
||||
{
|
||||
u8 i;
|
||||
u8 *framePics;
|
||||
@@ -146,7 +128,7 @@ u16 CreatePicSprite(u16 species, bool32 isShiny, u32 personality, bool8 isFrontP
|
||||
Free(framePics);
|
||||
return 0xFFFF;
|
||||
}
|
||||
if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys))
|
||||
if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer))
|
||||
{
|
||||
// debug trap?
|
||||
return 0xFFFF;
|
||||
@@ -174,11 +156,6 @@ u16 CreatePicSprite(u16 species, bool32 isShiny, u32 personality, bool8 isFrontP
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
u16 CreatePicSprite_HandleDeoxys(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
|
||||
{
|
||||
return CreatePicSprite(species, isShiny, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE);
|
||||
}
|
||||
|
||||
u16 FreeAndDestroyPicSpriteInternal(u16 spriteId)
|
||||
{
|
||||
u8 i;
|
||||
@@ -206,7 +183,7 @@ u16 FreeAndDestroyPicSpriteInternal(u16 spriteId)
|
||||
|
||||
static u16 LoadPicSpriteInWindow(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer)
|
||||
{
|
||||
if (DecompressPic_HandleDeoxys(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE))
|
||||
if (DecompressPic(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE))
|
||||
return 0xFFFF;
|
||||
|
||||
LoadPicPaletteBySlot(species, isShiny, personality, paletteSlot, isTrainer);
|
||||
@@ -218,7 +195,7 @@ u16 CreateTrainerCardSprite(u16 species, bool32 isShiny, u32 personality, bool8
|
||||
u8 *framePics;
|
||||
|
||||
framePics = Alloc(4 * 0x800);
|
||||
if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer))
|
||||
if (framePics && !DecompressPic(species, personality, isFrontPic, framePics, isTrainer))
|
||||
{
|
||||
BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40);
|
||||
LoadPicPaletteBySlot(species, isShiny, personality, paletteSlot, isTrainer);
|
||||
@@ -228,14 +205,9 @@ u16 CreateTrainerCardSprite(u16 species, bool32 isShiny, u32 personality, bool8
|
||||
return 0xFFFF;
|
||||
}
|
||||
|
||||
u16 CreateMonPicSprite(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys)
|
||||
u16 CreateMonPicSprite(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
|
||||
{
|
||||
return CreatePicSprite(species, isShiny, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys);
|
||||
}
|
||||
|
||||
u16 CreateMonPicSprite_HandleDeoxys(u16 species, bool32 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
|
||||
{
|
||||
return CreateMonPicSprite(species, isShiny, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE);
|
||||
return CreatePicSprite(species, isShiny, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE);
|
||||
}
|
||||
|
||||
u16 FreeAndDestroyMonPicSprite(u16 spriteId)
|
||||
@@ -250,7 +222,7 @@ u16 LoadMonPicInWindow(u16 species, bool32 isShiny, u32 personality, bool8 isFro
|
||||
|
||||
u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
|
||||
{
|
||||
return CreatePicSprite_HandleDeoxys(species, FALSE, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE);
|
||||
return CreatePicSprite(species, FALSE, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE);
|
||||
}
|
||||
|
||||
u16 FreeAndDestroyTrainerPicSprite(u16 spriteId)
|
||||
|
||||
Reference in New Issue
Block a user