mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-27 21:25:43 -05:00
Merge pull request #125 from AnonymousRandomPerson/main
Some checks failed
build / build (push) Has been cancelled
Some checks failed
build / build (push) Has been cancelled
Decomped more AI functions
This commit is contained in:
@@ -1,4 +1,85 @@
|
||||
#pragma once
|
||||
.public AreItemsEquivalent
|
||||
.public BAG_ITEMS_PTR_MIRROR
|
||||
.public BulkItemToItem
|
||||
.public CALCIUM_STAT_BOOST
|
||||
.public CopyBitsFrom
|
||||
.public CopyBitsTo
|
||||
.public DUNGEON_MOVE_TABLES
|
||||
.public Debug_Print0
|
||||
.public EXCLUSIVE_ITEM_ATTACK_BOOSTS
|
||||
.public EXCLUSIVE_ITEM_DEFENSE_BOOSTS
|
||||
.public EXCLUSIVE_ITEM_EFFECT_DATA
|
||||
.public EXCLUSIVE_ITEM_SPECIAL_ATTACK_BOOSTS
|
||||
.public EXCLUSIVE_ITEM_SPECIAL_DEFENSE_BOOSTS
|
||||
.public EXCLUSIVE_ITEM_STAT_BOOST_DATA_INDEXES
|
||||
.public FemaleToMaleForm
|
||||
.public GINSENG_CHANCE_3
|
||||
.public GUMMI_STAT_BOOST
|
||||
.public GetBagCapacity
|
||||
.public GetBagCapacitySpecialEpisode
|
||||
.public GetBaseFormCastformDeoxysCherrim
|
||||
.public GetDungeonResultString
|
||||
.public GetExclusiveItem
|
||||
.public GetExclusiveItemParameter
|
||||
.public GetExclusiveItemType
|
||||
.public GetExecuteSpecialEpisodeType
|
||||
.public GetFamilyIndex
|
||||
.public GetItemCategory
|
||||
.public GetItemCategoryVeneer
|
||||
.public GetItemIdFromList
|
||||
.public GetMaxPp
|
||||
.public GetMoveMaxGinsengBoostGround
|
||||
.public GetPartyMembers
|
||||
.public GetPerformanceFlagWithChecks
|
||||
.public GetRank
|
||||
.public GetRankStorageSize
|
||||
.public GetScenarioBalance
|
||||
.public GetTeamMember
|
||||
.public GetType
|
||||
.public HasMonsterBeenAttackedInDungeons
|
||||
.public IQ_GUMMI_GAIN_TABLE
|
||||
.public IRON_STAT_BOOST
|
||||
.public InitBulkItem
|
||||
.public Is2TurnsMove
|
||||
.public IsGummi
|
||||
.public IsItemInTimeDarkness
|
||||
.public IsItemValidVeneer
|
||||
.public IsMonsterValid
|
||||
.public IsStorableItem
|
||||
.public IsThrownItem
|
||||
.public IsTicketItem
|
||||
.public IsTreasureBox
|
||||
.public ItemZInit
|
||||
.public KECLEON_SHOP_ITEM_TABLE_LISTS_1
|
||||
.public KECLEON_SHOP_ITEM_TABLE_LISTS_2
|
||||
.public LIFE_SEED_HP_BOOST
|
||||
.public LoadFileFromRom
|
||||
.public LoadScriptVariableValue
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public OpenWaza
|
||||
.public PROTEIN_STAT_BOOST
|
||||
.public RECYCLE_SHOP_ITEM_LIST
|
||||
.public Rand16Bit
|
||||
.public RandInt
|
||||
.public RandIntSafe
|
||||
.public RandRange
|
||||
.public RemoveEmptyItems
|
||||
.public SITRUS_BERRY_FULL_HP_BOOST
|
||||
.public SaveScriptVariableValue
|
||||
.public SelectWaza
|
||||
.public SetItemAcquired
|
||||
.public SetNbRecycled
|
||||
.public SortItemList
|
||||
.public StringFromId
|
||||
.public TYPE_SPECIFIC_EXCLUSIVE_ITEMS
|
||||
.public UnloadFile
|
||||
.public WONDER_GUMMI_IQ_GAIN
|
||||
.public WONDER_GUMMI_STAT_BOOST
|
||||
.public ZINC_STAT_BOOST
|
||||
.public ZInit8
|
||||
.public _0209889C
|
||||
.public _020988A4
|
||||
.public _020988A8
|
||||
@@ -18,556 +99,21 @@
|
||||
.public _02098E14
|
||||
.public _02098E58
|
||||
.public _02098E9C
|
||||
.public _02098EA8
|
||||
.public _02098EE0
|
||||
.public _02098F60
|
||||
.public _02098F78
|
||||
.public _02098F90
|
||||
.public _02098FA8
|
||||
.public _02098FBC
|
||||
.public _02098FC0
|
||||
.public _02098FC8
|
||||
.public _0209901C
|
||||
.public _02099020
|
||||
.public _02099024
|
||||
.public _02099028
|
||||
.public _0209902C
|
||||
.public _02099080
|
||||
.public _02099110
|
||||
.public _02099124
|
||||
.public _02099138
|
||||
.public _02099140
|
||||
.public _0209915C
|
||||
.public _0209916C
|
||||
.public _0209918C
|
||||
.public _020991C8
|
||||
.public _020991F0
|
||||
.public _02099210
|
||||
.public _02099224
|
||||
.public _02099240
|
||||
.public _0209939C
|
||||
.public _020993B4
|
||||
.public _020993D0
|
||||
.public _020993E8
|
||||
.public _02099404
|
||||
.public _02099404_EU
|
||||
.public _02099418
|
||||
.public _02099434
|
||||
.public _02099448
|
||||
.public _02099464
|
||||
.public _02099470
|
||||
.public _0209947C
|
||||
.public _0209948C
|
||||
.public _0209949C
|
||||
.public _020994B0
|
||||
.public _020994C0
|
||||
.public _020994D8
|
||||
.public _02099500
|
||||
.public _02099514
|
||||
.public _02099528
|
||||
.public _0209953C
|
||||
.public _02099554
|
||||
.public _0209956C
|
||||
.public _02099584
|
||||
.public _0209958C
|
||||
.public _02099594
|
||||
.public _020995BC
|
||||
.public _020995D0
|
||||
.public _020995E8
|
||||
.public _020995F8
|
||||
.public _0209960C
|
||||
.public _02099620
|
||||
.public _02099634
|
||||
.public _02099644
|
||||
.public _02099650
|
||||
.public _02099660
|
||||
.public _02099684
|
||||
.public _020996A4
|
||||
.public _020996C0
|
||||
.public _020996D8
|
||||
.public _020996E0
|
||||
.public _02099714
|
||||
.public _0209971C
|
||||
.public _02099720
|
||||
.public _020997A4
|
||||
.public _020997B4
|
||||
.public _020997E4
|
||||
.public _0209990C
|
||||
.public _0209995C
|
||||
.public _020999AC
|
||||
.public _020999B0
|
||||
.public _020999C8
|
||||
.public _020999CC
|
||||
.public _020999D0
|
||||
.public _020999D4
|
||||
.public _020999D8
|
||||
.public _020999E4
|
||||
.public _020999F0
|
||||
.public _020999F4
|
||||
.public _020999F8
|
||||
.public _020999FC
|
||||
.public _02099A00
|
||||
.public _02099A04
|
||||
.public _02099A08
|
||||
.public _02099A10
|
||||
.public _02099A14
|
||||
.public _02099A18
|
||||
.public _02099A1C
|
||||
.public _02099A24
|
||||
.public _02099A28
|
||||
.public _02099A2C
|
||||
.public _02099A30
|
||||
.public _02099A34
|
||||
.public _02099A38
|
||||
.public _02099A40
|
||||
.public _02099A44
|
||||
.public _02099A5C
|
||||
.public _02099A64
|
||||
.public _02099A70
|
||||
.public _02099A74
|
||||
.public _02099A7C
|
||||
.public _02099A84
|
||||
.public _02099A8C
|
||||
.public _02099A98
|
||||
.public _02099AA0
|
||||
.public _02099AA4
|
||||
.public _02099AAC
|
||||
.public _02099AB8
|
||||
.public _02099AC0
|
||||
.public _02099AC8
|
||||
.public _02099AD0
|
||||
.public _02099AD4
|
||||
.public _02099AE0
|
||||
.public _02099AF0
|
||||
.public _02099AF8
|
||||
.public _02099B04
|
||||
.public _02099B10
|
||||
.public _02099B18
|
||||
.public _02099B24
|
||||
.public _02099B2C
|
||||
.public _02099B34
|
||||
.public _02099B40
|
||||
.public _02099B48
|
||||
.public _02099B50
|
||||
.public _02099B58
|
||||
.public _02099B60
|
||||
.public _02099B6C
|
||||
.public _02099B74
|
||||
.public _02099B7C
|
||||
.public _02099B8C
|
||||
.public _02099B9C
|
||||
.public _02099BA8
|
||||
.public _02099BB0
|
||||
.public _02099BBC
|
||||
.public _02099BC4
|
||||
.public _02099BCC
|
||||
.public _02099BD4
|
||||
.public _02099BDC
|
||||
.public _02099BE4
|
||||
.public _02099BEC
|
||||
.public _02099BF0_EU
|
||||
.public _02099BF4
|
||||
.public _02099BFC
|
||||
.public _02099C04_EU
|
||||
.public _02099C0C
|
||||
.public _02099C14
|
||||
.public _02099C1C
|
||||
.public _02099C24
|
||||
.public _02099C2C
|
||||
.public _02099C34
|
||||
.public _02099C44
|
||||
.public _02099C4C
|
||||
.public _02099C54
|
||||
.public _02099C5C
|
||||
.public _02099C68
|
||||
.public _02099C70
|
||||
.public _02099C78
|
||||
.public _02099C84
|
||||
.public _02099CA0
|
||||
.public _02099CA4
|
||||
.public _02099CAC
|
||||
.public _02099CB8
|
||||
.public _02099CC4
|
||||
.public _02099D0C
|
||||
.public _02099D10
|
||||
.public _02099D1C
|
||||
.public _02099D2C
|
||||
.public _02099D3C
|
||||
.public _02099D50
|
||||
.public _02099D54
|
||||
.public _02099D64
|
||||
.public _02099D74
|
||||
.public _02099D84
|
||||
.public _02099D8C
|
||||
.public _02099D90
|
||||
.public _02099DA0
|
||||
.public _02099DB0
|
||||
.public _02099DC0
|
||||
.public _02099DD0
|
||||
.public _02099DEC
|
||||
.public _02099E08
|
||||
.public _02099E18
|
||||
.public _02099E20
|
||||
.public _02099E40
|
||||
.public _02099E64_EU
|
||||
.public _0209A044
|
||||
.public _0209A046
|
||||
.public _0209A230_EU
|
||||
.public _0209A2D4_EU
|
||||
.public _0209A2F4_EU
|
||||
.public _0209A3B4
|
||||
.public _0209A3B6
|
||||
.public _020A1874
|
||||
.public _020A1878
|
||||
.public _020A18A0
|
||||
.public _020A18C8
|
||||
.public _020AF6D0
|
||||
.public _020AF6D4
|
||||
.public _020AF6E8
|
||||
.public _020AF6F0
|
||||
.public _020AF6F8
|
||||
.public _020AF700
|
||||
.public _020AF710
|
||||
.public _020AF714
|
||||
.public _020AF720
|
||||
.public _020AF721
|
||||
.public _020AF722
|
||||
.public _020AF760
|
||||
.public _020AF76C
|
||||
.public _020AF77C
|
||||
.public _020AF780
|
||||
.public _020AF784
|
||||
.public _020AF798
|
||||
.public _020AF7AC
|
||||
.public _020AF7C0
|
||||
.public _020AF7E4
|
||||
.public _020AF890
|
||||
.public _020AF96C
|
||||
.public _020AFA48
|
||||
.public _020AFB24
|
||||
.public _020AFB28
|
||||
.public _020AFB4C
|
||||
.public _020AFB6C
|
||||
.public _020AFC28
|
||||
.public _020AFC30
|
||||
.public _020AFC3C
|
||||
.public _020AFC4C
|
||||
.public _020AFC50
|
||||
.public _020AFC64
|
||||
.public _020AFC6C
|
||||
.public _020AFC70
|
||||
.public _020AFCE4
|
||||
.public _020B05AC_EU
|
||||
.public _020B05B0_EU
|
||||
.public _020B05BC_EU
|
||||
.public _020B05C0_EU
|
||||
.public _020B05D4_EU
|
||||
.public _020B05D8_EU
|
||||
.public _020B112C_JP
|
||||
.public _022A4BD8
|
||||
.public _022A4BE8
|
||||
.public _022A4BEC
|
||||
.public _022A4C00
|
||||
.public _022A4C28
|
||||
.public _022A4E50
|
||||
.public _022A4E58
|
||||
.public _022A4E7C
|
||||
.public _022A4E84
|
||||
.public _022A4E8C
|
||||
.public _022A4EA4
|
||||
.public _022A4EAC
|
||||
.public _022A4EB4
|
||||
.public _022A4EC4
|
||||
.public _022A4ECC
|
||||
.public _022A4EF4
|
||||
.public _022A4EFC
|
||||
.public _022A4F38
|
||||
.public _022A5038
|
||||
.public _022A5048
|
||||
.public _022A504C
|
||||
.public _022A5068
|
||||
.public _022A5268
|
||||
.public _022A5468
|
||||
.public _022A5969
|
||||
.public _022A596A
|
||||
.public _022A5970
|
||||
.public _s32_div_f
|
||||
.public _u32_div_f
|
||||
.public AreItemsEquivalent
|
||||
.public ArrayCopy32
|
||||
.public ArrayFill32
|
||||
.public AUDIO_COMMANDS_BUFFER
|
||||
.public BAG_ITEMS_PTR_MIRROR
|
||||
.public BulkItemToItem
|
||||
.public CALCIUM_STAT_BOOST
|
||||
.public CopyAndInterleave
|
||||
.public CopyAndInterleave0
|
||||
.public CopyBitsFrom
|
||||
.public CopyBitsTo
|
||||
.public CopyStringFromId
|
||||
.public Debug_FatalError
|
||||
.public Debug_GetDebugFlag
|
||||
.public Debug_Print
|
||||
.public Debug_Print0
|
||||
.public DirectoryFileMngr_GetDirectoryFileSize
|
||||
.public DirectoryFileMngr_LoadDirectoryFile
|
||||
.public DirectoryFileMngr_OpenDirectoryFile
|
||||
.public DseBgm_IsPlaying
|
||||
.public DseBgm_Load
|
||||
.public DseBgm_SetFades
|
||||
.public DseBgm_SetSignalCallback
|
||||
.public DseBgm_Stop
|
||||
.public DseBgm_Unload
|
||||
.public DseDriver_ConfigureHeap
|
||||
.public DseDriver_Init
|
||||
.public DseDriver_LoadDefaultSettings
|
||||
.public DseSe_GetUsedBankIDs
|
||||
.public DseSe_HasPlayingInstances
|
||||
.public DseSe_Load
|
||||
.public DseSe_Play
|
||||
.public DseSe_Stop
|
||||
.public DseSe_StopAll
|
||||
.public DseSe_Unload
|
||||
.public DseSequence_GetParameter
|
||||
.public DseSwd_IsBankLoading
|
||||
.public DseSwd_LoadBank
|
||||
.public DseSwd_LoadMainBank
|
||||
.public DseSwd_LoadWaves
|
||||
.public DseSwd_Unload
|
||||
.public DUNGEON_MOVE_TABLES
|
||||
.public DungeonGoesUp
|
||||
.public DungeonSwapIdxToId
|
||||
.public EnqueueRender3dTexture
|
||||
.public ENTITIES
|
||||
.public EXCLUSIVE_ITEM_ATTACK_BOOSTS
|
||||
.public EXCLUSIVE_ITEM_DEFENSE_BOOSTS
|
||||
.public EXCLUSIVE_ITEM_EFFECT_DATA
|
||||
.public EXCLUSIVE_ITEM_SPECIAL_ATTACK_BOOSTS
|
||||
.public EXCLUSIVE_ITEM_SPECIAL_DEFENSE_BOOSTS
|
||||
.public EXCLUSIVE_ITEM_STAT_BOOST_DATA_INDEXES
|
||||
.public FemaleToMaleForm
|
||||
.public FileClose
|
||||
.public FileGetSize
|
||||
.public FileRom_HandleOpen
|
||||
.public FileRom_HandleRead
|
||||
.public FileRom_InitDataTransfer
|
||||
.public FileRom_StopDataTransfer
|
||||
.public FileRom_Veneer_FileInit
|
||||
.public G3i_LookAt_
|
||||
.public G3i_OrthoW_
|
||||
.public GetAbility
|
||||
.public GetAbilityString
|
||||
.public GetActiveRosterIndex
|
||||
.public GetActiveTeamMember
|
||||
.public GetActorMatchingStorageId
|
||||
.public GetBagCapacity
|
||||
.public GetBagCapacitySpecialEpisode
|
||||
.public GetBaseFormCastformDeoxysCherrim
|
||||
.public GetDsFirmwareUserSettingsVeneer
|
||||
.public GetExclusiveItem
|
||||
.public GetExclusiveItemParameter
|
||||
.public GetExclusiveItemType
|
||||
.public GetExecuteSpecialEpisodeType
|
||||
.public GetFamilyIndex
|
||||
.public GetGameMode
|
||||
.public GetIqSkillStringId
|
||||
.public GetItemCategory
|
||||
.public GetItemCategoryVeneer
|
||||
.public GetItemIdFromList
|
||||
.public GetItemMoveId16
|
||||
.public GetItemNameFormatted
|
||||
.public GetMainTeamName
|
||||
.public GetMonsterGender
|
||||
.public GetMonsterGenderVeneer
|
||||
.public GetNameString
|
||||
.public GetNbFloors
|
||||
.public GetNbFloorsPlusOne
|
||||
.public GetPartyMembers
|
||||
.public GetPerformanceFlagWithChecks
|
||||
.public GetRank
|
||||
.public GetRankStorageSize
|
||||
.public GetScenarioBalance
|
||||
.public GetStringFromFileVeneer
|
||||
.public GetTeamMember
|
||||
.public GetType
|
||||
.public GetTypeStringId
|
||||
.public GINSENG_CHANCE_3
|
||||
.public GUMMI_STAT_BOOST
|
||||
.public GX_BeginLoadBGExtPltt
|
||||
.public GX_BeginLoadOBJExtPltt
|
||||
.public GX_BeginLoadTex
|
||||
.public GX_BeginLoadTexPltt
|
||||
.public GX_EndLoadBGExtPltt
|
||||
.public GX_EndLoadOBJExtPltt
|
||||
.public GX_EndLoadTex
|
||||
.public GX_EndLoadTexPltt
|
||||
.public GX_LoadTex
|
||||
.public GX_LoadTexPltt
|
||||
.public GXS_BeginLoadBGExtPltt
|
||||
.public GXS_BeginLoadOBJExtPltt
|
||||
.public GXS_EndLoadBGExtPltt
|
||||
.public GXS_EndLoadOBJExtPltt
|
||||
.public HasMonsterBeenAttackedInDungeons
|
||||
.public InitBulkItem
|
||||
.public IQ_GUMMI_GAIN_TABLE
|
||||
.public IqSkillFlagTest
|
||||
.public IRON_STAT_BOOST
|
||||
.public IsGummi
|
||||
.public IsItemInTimeDarkness
|
||||
.public IsItemValidVeneer
|
||||
.public IsMonsterValid
|
||||
.public IsStorableItem
|
||||
.public IsThrownItem
|
||||
.public IsTicketItem
|
||||
.public IsTreasureBox
|
||||
.public ItemZInit
|
||||
.public KECLEON_SHOP_ITEM_TABLE_LISTS_1
|
||||
.public KECLEON_SHOP_ITEM_TABLE_LISTS_2
|
||||
.public LANGUAGE_INFO_DATA
|
||||
.public LIFE_SEED_HP_BOOST
|
||||
.public LoadFileFromRom
|
||||
.public LoadScriptVariableValue
|
||||
.public LoadScriptVariableValueAtIndex
|
||||
.public LoadStringFile
|
||||
.public MemAlloc
|
||||
.public MemArenaAlloc
|
||||
.public Memcpy32
|
||||
.public MemFree
|
||||
.public MemLocateSet
|
||||
.public MemLocateUnset
|
||||
.public memset
|
||||
.public MemZero
|
||||
.public MemZero32
|
||||
.public MOVE_ACCURACY_STARS_TABLE
|
||||
.public MOVE_POWER_STARS_TABLE
|
||||
.public MultiplyByFixedPoint
|
||||
.public NewRender3dQuadrilateral
|
||||
.public NewRender3dRectangle
|
||||
.public NewRender3dTexture
|
||||
.public NewRender3dTiling
|
||||
.public ov10_022BDADC
|
||||
.public ov10_022C2528
|
||||
.public PointsToZero
|
||||
.public PROTEIN_STAT_BOOST
|
||||
.public PUNCH_MOVE_LIST
|
||||
.public Rand16Bit
|
||||
.public RandInt
|
||||
.public RandIntSafe
|
||||
.public RandRange
|
||||
.public RECOIL_MOVE_LIST
|
||||
.public RECYCLE_SHOP_ITEM_LIST
|
||||
.public RemoveEmptyItems
|
||||
.public Render3dProcessQueue
|
||||
.public RENDER_3D
|
||||
.public RENDER_3D_FUNCTIONS_64
|
||||
.public ResumeBgm
|
||||
.public Rgb8ToRgb5
|
||||
.public SaveScriptVariableValue
|
||||
.public SetItemAcquired
|
||||
.public SetNbRecycled
|
||||
.public SITRUS_BERRY_FULL_HP_BOOST
|
||||
.public SortItemList
|
||||
.public sprintf
|
||||
.public strcat
|
||||
.public strcmp
|
||||
.public strcpy
|
||||
.public StringFromId
|
||||
.public strlen
|
||||
.public strncmp
|
||||
.public strstr
|
||||
.public sub_01FF8F04
|
||||
.public sub_02002778
|
||||
.public sub_020027E8
|
||||
.public sub_02002A9C
|
||||
.public sub_02002C40
|
||||
.public sub_02002CAC
|
||||
.public sub_02002CB4
|
||||
.public sub_02002D14
|
||||
.public sub_02002E98
|
||||
.public sub_02002ECC
|
||||
.public sub_02002F34
|
||||
.public sub_02002F7C
|
||||
.public sub_02002F98
|
||||
.public sub_02002FB4
|
||||
.public sub_0200302C
|
||||
.public sub_020030FC
|
||||
.public sub_02003AB0
|
||||
.public sub_02006220
|
||||
.public sub_020063A0
|
||||
.public sub_020063D4
|
||||
.public sub_0200A124
|
||||
.public sub_0200A174
|
||||
.public sub_0200A180
|
||||
.public sub_0200A184
|
||||
.public sub_0200A29C
|
||||
.public sub_0200A2B4
|
||||
.public sub_0200A478
|
||||
.public sub_0200A504
|
||||
.public sub_0200A510
|
||||
.public sub_0200A590
|
||||
.public sub_0200A5B0
|
||||
.public sub_0200A5F8
|
||||
.public sub_0200A618
|
||||
.public sub_0200B330
|
||||
.public sub_0200B3C0
|
||||
.public sub_0200B3D4
|
||||
.public sub_0200B3FC
|
||||
.public sub_0200B508
|
||||
.public sub_0200B570
|
||||
.public sub_0200B57C
|
||||
.public sub_0200B630
|
||||
.public sub_0200B67C
|
||||
.public sub_0200B6F0
|
||||
.public sub_0200B768
|
||||
.public sub_0200D1F0
|
||||
.public sub_0200D310
|
||||
.public sub_0200D8AC
|
||||
.public sub_0200EB90
|
||||
.public sub_020257FC
|
||||
.public sub_02025C7C
|
||||
.public sub_0204BBB0
|
||||
.public sub_0204E530
|
||||
.public sub_0204F6F8
|
||||
.public sub_0204F77C
|
||||
.public sub_02050974
|
||||
.public sub_02050990
|
||||
.public sub_020509BC
|
||||
.public sub_02053D1C
|
||||
.public sub_02054FB8
|
||||
.public sub_02054FEC
|
||||
.public sub_02055020
|
||||
.public sub_02055054
|
||||
.public sub_020564B0
|
||||
.public sub_020582E0
|
||||
.public sub_02058C30
|
||||
.public sub_0206549C
|
||||
.public sub_02065B14
|
||||
.public sub_02065BF0
|
||||
.public sub_02065CD8
|
||||
.public sub_0206A90C
|
||||
.public sub_0206AA5C
|
||||
.public sub_0206AB98
|
||||
.public sub_0206ABB0
|
||||
.public sub_0206AD4C
|
||||
.public sub_0206ADA0
|
||||
.public sub_0206ADB8
|
||||
.public sub_0206BA5C
|
||||
.public sub_0206C36C
|
||||
.public sub_0206C39C
|
||||
.public sub_0206C620
|
||||
.public sub_0206C6BC
|
||||
.public sub_0206C754
|
||||
.public sub_0206F5C8
|
||||
.public sub_0207A2DC
|
||||
.public sub_0207C9C4
|
||||
.public sub_0207C9E4
|
||||
.public sub_0207CC10
|
||||
.public TEAM_MEMBER_TABLE_PTR
|
||||
.public TYPE_SPECIFIC_EXCLUSIVE_ITEMS
|
||||
.public UnloadFile
|
||||
.public vsprintf
|
||||
.public WAN_TABLE
|
||||
.public WONDER_GUMMI_IQ_GAIN
|
||||
.public WONDER_GUMMI_STAT_BOOST
|
||||
.public ZINC_STAT_BOOST
|
||||
.public ZInit8
|
||||
|
||||
481
asm/include/main_02013AD0.inc
Normal file
481
asm/include/main_02013AD0.inc
Normal file
@@ -0,0 +1,481 @@
|
||||
#pragma once
|
||||
.public AUDIO_COMMANDS_BUFFER
|
||||
.public ArrayCopy32
|
||||
.public ArrayFill32
|
||||
.public BagHasExclusiveItemTypeForMonster
|
||||
.public CopyAndInterleave
|
||||
.public CopyAndInterleave0
|
||||
.public CopyBitsFrom
|
||||
.public CopyBitsTo
|
||||
.public CopyStringFromId
|
||||
.public DUNGEON_MOVE_TABLES
|
||||
.public Debug_FatalError
|
||||
.public Debug_GetDebugFlag
|
||||
.public Debug_Print
|
||||
.public Debug_Print0
|
||||
.public DirectoryFileMngr_GetDirectoryFileSize
|
||||
.public DirectoryFileMngr_LoadDirectoryFile
|
||||
.public DirectoryFileMngr_OpenDirectoryFile
|
||||
.public DseBgm_IsPlaying
|
||||
.public DseBgm_Load
|
||||
.public DseBgm_SetFades
|
||||
.public DseBgm_SetSignalCallback
|
||||
.public DseBgm_Stop
|
||||
.public DseBgm_Unload
|
||||
.public DseDriver_ConfigureHeap
|
||||
.public DseDriver_Init
|
||||
.public DseDriver_LoadDefaultSettings
|
||||
.public DseSe_GetUsedBankIDs
|
||||
.public DseSe_HasPlayingInstances
|
||||
.public DseSe_Load
|
||||
.public DseSe_Play
|
||||
.public DseSe_Stop
|
||||
.public DseSe_StopAll
|
||||
.public DseSe_Unload
|
||||
.public DseSequence_GetParameter
|
||||
.public DseSwd_IsBankLoading
|
||||
.public DseSwd_LoadBank
|
||||
.public DseSwd_LoadMainBank
|
||||
.public DseSwd_LoadWaves
|
||||
.public DseSwd_Unload
|
||||
.public DungeonGoesUp
|
||||
.public DungeonSwapIdxToId
|
||||
.public ENTITIES
|
||||
.public EnqueueRender3dTexture
|
||||
.public FileClose
|
||||
.public FileGetSize
|
||||
.public FileRom_HandleOpen
|
||||
.public FileRom_HandleRead
|
||||
.public FileRom_InitDataTransfer
|
||||
.public FileRom_StopDataTransfer
|
||||
.public FileRom_Veneer_FileInit
|
||||
.public G3i_LookAt_
|
||||
.public G3i_OrthoW_
|
||||
.public GXS_BeginLoadBGExtPltt
|
||||
.public GXS_BeginLoadOBJExtPltt
|
||||
.public GXS_EndLoadBGExtPltt
|
||||
.public GXS_EndLoadOBJExtPltt
|
||||
.public GX_BeginLoadBGExtPltt
|
||||
.public GX_BeginLoadOBJExtPltt
|
||||
.public GX_BeginLoadTex
|
||||
.public GX_BeginLoadTexPltt
|
||||
.public GX_EndLoadBGExtPltt
|
||||
.public GX_EndLoadOBJExtPltt
|
||||
.public GX_EndLoadTex
|
||||
.public GX_EndLoadTexPltt
|
||||
.public GX_LoadTex
|
||||
.public GX_LoadTexPltt
|
||||
.public GetAbility
|
||||
.public GetAbilityString
|
||||
.public GetActiveRosterIndex
|
||||
.public GetActiveTeamMember
|
||||
.public GetActorMatchingStorageId
|
||||
.public GetCurrentBagCapacity
|
||||
.public GetDsFirmwareUserSettingsVeneer
|
||||
.public GetExecuteSpecialEpisodeType
|
||||
.public GetGameMode
|
||||
.public GetInfoMoveGround
|
||||
.public GetIqSkillStringId
|
||||
.public GetItemMoveId16
|
||||
.public GetItemNameFormatted
|
||||
.public GetMainTeamName
|
||||
.public GetMonsterGender
|
||||
.public GetMonsterGenderVeneer
|
||||
.public GetMoveName
|
||||
.public GetNameString
|
||||
.public GetNbFloors
|
||||
.public GetNbFloorsPlusOne
|
||||
.public GetPerformanceFlagWithChecks
|
||||
.public GetStringFromFileVeneer
|
||||
.public GetTeamMember
|
||||
.public GetTypeStringId
|
||||
.public IqSkillFlagTest
|
||||
.public LANGUAGE_INFO_DATA
|
||||
.public LoadFileFromRom
|
||||
.public LoadScriptVariableValue
|
||||
.public LoadScriptVariableValueAtIndex
|
||||
.public LoadStringFile
|
||||
.public MOVE_ACCURACY_STARS_TABLE
|
||||
.public MOVE_POWER_STARS_TABLE
|
||||
.public MemAlloc
|
||||
.public MemArenaAlloc
|
||||
.public MemFree
|
||||
.public MemLocateSet
|
||||
.public MemLocateUnset
|
||||
.public MemZero
|
||||
.public MemZero32
|
||||
.public Memcpy32
|
||||
.public MultiplyByFixedPoint
|
||||
.public NewRender3dQuadrilateral
|
||||
.public NewRender3dRectangle
|
||||
.public NewRender3dTexture
|
||||
.public NewRender3dTiling
|
||||
.public PUNCH_MOVE_LIST
|
||||
.public PointsToZero
|
||||
.public RECOIL_MOVE_LIST
|
||||
.public RENDER_3D
|
||||
.public RENDER_3D_FUNCTIONS_64
|
||||
.public Rand16Bit
|
||||
.public Render3dProcessQueue
|
||||
.public ResumeBgm
|
||||
.public Rgb8ToRgb5
|
||||
.public StringFromId
|
||||
.public TEAM_MEMBER_TABLE_PTR
|
||||
.public UnloadFile
|
||||
.public WAN_TABLE
|
||||
.public ZInit8
|
||||
.public _02098EA8
|
||||
.public _02098EE0
|
||||
.public _02098F60
|
||||
.public _02098F78
|
||||
.public _02098F90
|
||||
.public _02098FA8
|
||||
.public _02098FBC
|
||||
.public _02098FC0
|
||||
.public _02098FC8
|
||||
.public _0209901C
|
||||
.public _02099020
|
||||
.public _02099024
|
||||
.public _02099028
|
||||
.public _0209902C
|
||||
.public _02099080
|
||||
.public _02099110
|
||||
.public _02099124
|
||||
.public _02099138
|
||||
.public _02099140
|
||||
.public _0209915C
|
||||
.public _0209916C
|
||||
.public _0209918C
|
||||
.public _020991C8
|
||||
.public _020991F0
|
||||
.public _02099210
|
||||
.public _02099224
|
||||
.public _02099240
|
||||
.public _0209939C
|
||||
.public _020993B4
|
||||
.public _020993D0
|
||||
.public _020993E8
|
||||
.public _02099404
|
||||
.public _02099404_EU
|
||||
.public _02099418
|
||||
.public _02099434
|
||||
.public _02099448
|
||||
.public _02099464
|
||||
.public _02099470
|
||||
.public _0209947C
|
||||
.public _0209948C
|
||||
.public _0209949C
|
||||
.public _020994B0
|
||||
.public _020994C0
|
||||
.public _020994D8
|
||||
.public _02099500
|
||||
.public _02099514
|
||||
.public _02099528
|
||||
.public _0209953C
|
||||
.public _02099554
|
||||
.public _0209956C
|
||||
.public _02099584
|
||||
.public _0209958C
|
||||
.public _02099594
|
||||
.public _020995BC
|
||||
.public _020995D0
|
||||
.public _020995E8
|
||||
.public _020995F8
|
||||
.public _0209960C
|
||||
.public _02099620
|
||||
.public _02099634
|
||||
.public _02099644
|
||||
.public _02099650
|
||||
.public _02099660
|
||||
.public _02099684
|
||||
.public _020996A4
|
||||
.public _020996C0
|
||||
.public _020996D8
|
||||
.public _020996E0
|
||||
.public _02099714
|
||||
.public _0209971C
|
||||
.public _02099720
|
||||
.public _020997A4
|
||||
.public _020997B4
|
||||
.public _020997E4
|
||||
.public _0209990C
|
||||
.public _0209995C
|
||||
.public _020999AC
|
||||
.public _020999B0
|
||||
.public _020999C8
|
||||
.public _020999CC
|
||||
.public _020999D0
|
||||
.public _020999D4
|
||||
.public _020999D8
|
||||
.public _020999E4
|
||||
.public _020999F0
|
||||
.public _020999F4
|
||||
.public _020999F8
|
||||
.public _020999FC
|
||||
.public _02099A00
|
||||
.public _02099A04
|
||||
.public _02099A08
|
||||
.public _02099A10
|
||||
.public _02099A14
|
||||
.public _02099A18
|
||||
.public _02099A1C
|
||||
.public _02099A24
|
||||
.public _02099A28
|
||||
.public _02099A2C
|
||||
.public _02099A30
|
||||
.public _02099A34
|
||||
.public _02099A38
|
||||
.public _02099A40
|
||||
.public _02099A44
|
||||
.public _02099A5C
|
||||
.public _02099A64
|
||||
.public _02099A70
|
||||
.public _02099A74
|
||||
.public _02099A7C
|
||||
.public _02099A84
|
||||
.public _02099A8C
|
||||
.public _02099A98
|
||||
.public _02099AA0
|
||||
.public _02099AA4
|
||||
.public _02099AAC
|
||||
.public _02099AB8
|
||||
.public _02099AC0
|
||||
.public _02099AC8
|
||||
.public _02099AD0
|
||||
.public _02099AD4
|
||||
.public _02099AE0
|
||||
.public _02099AF0
|
||||
.public _02099AF8
|
||||
.public _02099B04
|
||||
.public _02099B10
|
||||
.public _02099B18
|
||||
.public _02099B24
|
||||
.public _02099B2C
|
||||
.public _02099B34
|
||||
.public _02099B40
|
||||
.public _02099B48
|
||||
.public _02099B50
|
||||
.public _02099B58
|
||||
.public _02099B60
|
||||
.public _02099B6C
|
||||
.public _02099B74
|
||||
.public _02099B7C
|
||||
.public _02099B8C
|
||||
.public _02099B9C
|
||||
.public _02099BA8
|
||||
.public _02099BB0
|
||||
.public _02099BBC
|
||||
.public _02099BC4
|
||||
.public _02099BCC
|
||||
.public _02099BD4
|
||||
.public _02099BDC
|
||||
.public _02099BE4
|
||||
.public _02099BEC
|
||||
.public _02099BF0_EU
|
||||
.public _02099BF4
|
||||
.public _02099BFC
|
||||
.public _02099C04_EU
|
||||
.public _02099C0C
|
||||
.public _02099C14
|
||||
.public _02099C1C
|
||||
.public _02099C24
|
||||
.public _02099C2C
|
||||
.public _02099C34
|
||||
.public _02099C44
|
||||
.public _02099C4C
|
||||
.public _02099C54
|
||||
.public _02099C5C
|
||||
.public _02099C68
|
||||
.public _02099C70
|
||||
.public _02099C78
|
||||
.public _02099C84
|
||||
.public _02099CA0
|
||||
.public _02099CA4
|
||||
.public _02099CAC
|
||||
.public _02099CB8
|
||||
.public _02099CC4
|
||||
.public _02099D0C
|
||||
.public _02099D10
|
||||
.public _02099D1C
|
||||
.public _02099D2C
|
||||
.public _02099D3C
|
||||
.public _02099D50
|
||||
.public _02099D54
|
||||
.public _02099D64
|
||||
.public _02099D74
|
||||
.public _02099D84
|
||||
.public _02099D8C
|
||||
.public _02099D90
|
||||
.public _02099DA0
|
||||
.public _02099DB0
|
||||
.public _02099DC0
|
||||
.public _02099DD0
|
||||
.public _02099DEC
|
||||
.public _02099E08
|
||||
.public _02099E18
|
||||
.public _02099E20
|
||||
.public _02099E40
|
||||
.public _02099E64_EU
|
||||
.public _0209A044
|
||||
.public _0209A046
|
||||
.public _0209A230_EU
|
||||
.public _0209A2D4_EU
|
||||
.public _0209A2F4_EU
|
||||
.public _0209A3B4
|
||||
.public _0209A3B6
|
||||
.public _020AF6E8
|
||||
.public _020AF6F0
|
||||
.public _020AF6F8
|
||||
.public _020AF700
|
||||
.public _020AF710
|
||||
.public _020AF714
|
||||
.public _020AF720
|
||||
.public _020AF721
|
||||
.public _020AF722
|
||||
.public _020AF760
|
||||
.public _020AF76C
|
||||
.public _020AF77C
|
||||
.public _020AF780
|
||||
.public _020AF784
|
||||
.public _020AF798
|
||||
.public _020AF7AC
|
||||
.public _020AF7C0
|
||||
.public _020AF7E4
|
||||
.public _020AF890
|
||||
.public _020AF96C
|
||||
.public _020AFA48
|
||||
.public _020AFB24
|
||||
.public _020AFB28
|
||||
.public _020AFB4C
|
||||
.public _020AFB6C
|
||||
.public _020AFC28
|
||||
.public _020AFC30
|
||||
.public _020AFC3C
|
||||
.public _020AFC4C
|
||||
.public _020AFC50
|
||||
.public _020AFC64
|
||||
.public _020AFC6C
|
||||
.public _020AFC70
|
||||
.public _020AFCE4
|
||||
.public _020B05AC_EU
|
||||
.public _020B05B0_EU
|
||||
.public _020B05BC_EU
|
||||
.public _020B05C0_EU
|
||||
.public _020B05D4_EU
|
||||
.public _020B05D8_EU
|
||||
.public _020B112C_JP
|
||||
.public _022A4BE8
|
||||
.public _022A4BEC
|
||||
.public _022A4C00
|
||||
.public _022A4C28
|
||||
.public _022A4E50
|
||||
.public _022A4E58
|
||||
.public _022A4E7C
|
||||
.public _022A4E84
|
||||
.public _022A4E8C
|
||||
.public _022A4EA4
|
||||
.public _022A4EAC
|
||||
.public _022A4EB4
|
||||
.public _022A4EC4
|
||||
.public _022A4ECC
|
||||
.public _022A4EF4
|
||||
.public _022A4EFC
|
||||
.public _022A4F38
|
||||
.public _022A5038
|
||||
.public _022A5048
|
||||
.public _022A504C
|
||||
.public _022A5068
|
||||
.public _022A5268
|
||||
.public _022A5468
|
||||
.public _022A5969
|
||||
.public _022A596A
|
||||
.public _022A5970
|
||||
.public _s32_div_f
|
||||
.public _u32_div_f
|
||||
.public memset
|
||||
.public ov10_022BDADC
|
||||
.public ov10_022C2528
|
||||
.public sprintf
|
||||
.public strcat
|
||||
.public strcmp
|
||||
.public strcpy
|
||||
.public strlen
|
||||
.public strncmp
|
||||
.public strstr
|
||||
.public sub_01FF8F04
|
||||
.public sub_02002778
|
||||
.public sub_020027E8
|
||||
.public sub_02002A9C
|
||||
.public sub_02002C40
|
||||
.public sub_02002CAC
|
||||
.public sub_02002CB4
|
||||
.public sub_02002D14
|
||||
.public sub_02002E98
|
||||
.public sub_02002ECC
|
||||
.public sub_02002F34
|
||||
.public sub_02002F7C
|
||||
.public sub_02002F98
|
||||
.public sub_02002FB4
|
||||
.public sub_0200302C
|
||||
.public sub_020030FC
|
||||
.public sub_02003AB0
|
||||
.public sub_02006220
|
||||
.public sub_020063A0
|
||||
.public sub_020063D4
|
||||
.public sub_0200A124
|
||||
.public sub_0200A174
|
||||
.public sub_0200A180
|
||||
.public sub_0200A184
|
||||
.public sub_0200A29C
|
||||
.public sub_0200A2B4
|
||||
.public sub_0200A478
|
||||
.public sub_0200A504
|
||||
.public sub_0200A510
|
||||
.public sub_0200A590
|
||||
.public sub_0200A5B0
|
||||
.public sub_0200A5F8
|
||||
.public sub_0200A618
|
||||
.public sub_0200B330
|
||||
.public sub_0200B3C0
|
||||
.public sub_0200B3D4
|
||||
.public sub_0200B3FC
|
||||
.public sub_0200B508
|
||||
.public sub_0200B570
|
||||
.public sub_0200B57C
|
||||
.public sub_0200B630
|
||||
.public sub_0200B67C
|
||||
.public sub_0200B6F0
|
||||
.public sub_0200B768
|
||||
.public sub_0200D310
|
||||
.public sub_020257FC
|
||||
.public sub_02025C7C
|
||||
.public sub_0204BBB0
|
||||
.public sub_0204E530
|
||||
.public sub_0204F6F8
|
||||
.public sub_0204F77C
|
||||
.public sub_02053D1C
|
||||
.public sub_020564B0
|
||||
.public sub_02058C30
|
||||
.public sub_0206549C
|
||||
.public sub_02065B14
|
||||
.public sub_02065BF0
|
||||
.public sub_02065CD8
|
||||
.public sub_0206A90C
|
||||
.public sub_0206AA5C
|
||||
.public sub_0206AB98
|
||||
.public sub_0206ABB0
|
||||
.public sub_0206AD4C
|
||||
.public sub_0206ADA0
|
||||
.public sub_0206ADB8
|
||||
.public sub_0206BA5C
|
||||
.public sub_0206C36C
|
||||
.public sub_0206C39C
|
||||
.public sub_0206C620
|
||||
.public sub_0206C6BC
|
||||
.public sub_0206C754
|
||||
.public sub_0206F5C8
|
||||
.public sub_0207A2DC
|
||||
.public sub_0207C9C4
|
||||
.public sub_0207C9E4
|
||||
.public sub_0207CC10
|
||||
.public vsprintf
|
||||
@@ -6,12 +6,11 @@
|
||||
.public GetName
|
||||
.public GetNameRaw
|
||||
.public GetNameWithGender
|
||||
.public IsBlinded
|
||||
.public StringFromId
|
||||
.public ov29_0234B0B4
|
||||
.public ov29_023527C0
|
||||
.public ov29_023527D0
|
||||
.public strcpy
|
||||
.public StringFromId
|
||||
.public sub_02024FB8
|
||||
.public sub_02056084
|
||||
.public sub_02058534
|
||||
|
||||
2
asm/include/overlay_29_02300500.inc
Normal file
2
asm/include/overlay_29_02300500.inc
Normal file
@@ -0,0 +1,2 @@
|
||||
#pragma once
|
||||
.public IsBlinded
|
||||
1
asm/include/overlay_29_023007A8.inc
Normal file
1
asm/include/overlay_29_023007A8.inc
Normal file
@@ -0,0 +1 @@
|
||||
#pragma once
|
||||
3
asm/include/overlay_29_0231E990.inc
Normal file
3
asm/include/overlay_29_0231E990.inc
Normal file
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
.public EAT_ITEM_EFFECT_IGNORE_LIST
|
||||
.public IsItemValidVeneer
|
||||
@@ -1,20 +1,18 @@
|
||||
#pragma once
|
||||
.public DUNGEON_PTR
|
||||
.public DetermineAllMonsterShadow
|
||||
.public DetermineTileWalkableNeighbors
|
||||
.public DIRECTIONS_XY
|
||||
.public DUNGEON_PTR
|
||||
.public EAT_ITEM_EFFECT_IGNORE_LIST
|
||||
.public EnsureCanStandCurrentTile
|
||||
.public EntityIsValid__0231EDD8
|
||||
.public GetMaxPp
|
||||
.public GetMoveCategory
|
||||
.public GetTile
|
||||
.public GetTileSafe
|
||||
.public GetTreatmentBetweenMonsters
|
||||
.public InitMove
|
||||
.public IsFullFloorFixedRoom
|
||||
.public IsItemValidVeneer
|
||||
.public LogMessageByIdWithPopupCheckUser
|
||||
.public StairsAlwaysReachable
|
||||
.public UpdateMinimap
|
||||
.public UpdateTrapsVisibility
|
||||
.public ov29_022E0378
|
||||
.public ov29_022EA370
|
||||
.public ov29_022F9C74
|
||||
@@ -22,6 +20,3 @@
|
||||
.public ov29_0233665C
|
||||
.public ov29_0233785C
|
||||
.public ov29_0233FB1C
|
||||
.public StairsAlwaysReachable
|
||||
.public UpdateMinimap
|
||||
.public UpdateTrapsVisibility
|
||||
23188
asm/main_0200ED1C.s
23188
asm/main_0200ED1C.s
File diff suppressed because it is too large
Load Diff
23155
asm/main_02013AD0.s
Normal file
23155
asm/main_02013AD0.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -18819,8 +18819,8 @@ SPECIAL_BAND_STAT_BOOST:
|
||||
.global _020A1870
|
||||
_020A1870:
|
||||
.byte 0x0A, 0x00, 0x00, 0x00
|
||||
.global _020A1874
|
||||
_020A1874:
|
||||
.global UNKNOWN_PP_BOOST_AMOUNT
|
||||
UNKNOWN_PP_BOOST_AMOUNT:
|
||||
.byte 0x04, 0x00, 0x00, 0x00
|
||||
.global _020A1878
|
||||
_020A1878:
|
||||
@@ -18852,8 +18852,8 @@ AURA_BOW_STAT_BOOST:
|
||||
.global _020A189C
|
||||
_020A189C:
|
||||
.byte 0x2C, 0x01, 0x00, 0x00
|
||||
.global _020A18A0
|
||||
_020A18A0:
|
||||
.global MULTITALENT_PP_BOOST_AMOUNT
|
||||
MULTITALENT_PP_BOOST_AMOUNT:
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.global MIN_IQ_ITEM_MASTER
|
||||
MIN_IQ_ITEM_MASTER:
|
||||
@@ -18882,8 +18882,8 @@ _020A18C0:
|
||||
.global EVOLUTION_HP_BONUS
|
||||
EVOLUTION_HP_BONUS:
|
||||
.byte 0x0A, 0x00, 0x00, 0x00
|
||||
.global _020A18C8
|
||||
_020A18C8:
|
||||
.global EXCLUSIVE_ITEM_PP_BOOST_AMOUNT
|
||||
EXCLUSIVE_ITEM_PP_BOOST_AMOUNT:
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
.global DAMAGE_FORMULA_FLV_SHIFT
|
||||
DAMAGE_FORMULA_FLV_SHIFT:
|
||||
|
||||
@@ -402,291 +402,3 @@ _02300490:
|
||||
bl ov29_0234B0B4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end ov29_0230040C
|
||||
|
||||
arm_func_start IsMonsterDrowsy
|
||||
IsMonsterDrowsy: ; 0x023004B0
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xbd]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #3
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #4
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end IsMonsterDrowsy
|
||||
|
||||
arm_func_start MonsterHasNonvolatileNonsleepStatus
|
||||
MonsterHasNonvolatileNonsleepStatus: ; 0x023004E4
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xbf]
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasNonvolatileNonsleepStatus
|
||||
|
||||
arm_func_start MonsterHasImmobilizingStatus
|
||||
MonsterHasImmobilizingStatus: ; 0x02300500
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xc4]
|
||||
cmp r0, #3
|
||||
cmpne r0, #5
|
||||
cmpne r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
bx lr
|
||||
arm_func_end MonsterHasImmobilizingStatus
|
||||
|
||||
arm_func_start MonsterHasAttackInterferingStatus
|
||||
MonsterHasAttackInterferingStatus: ; 0x02300520
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xd0]
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasAttackInterferingStatus
|
||||
|
||||
arm_func_start MonsterHasSkillInterferingStatus
|
||||
MonsterHasSkillInterferingStatus: ; 0x0230053C
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xd8]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #2
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #4
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #5
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #6
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasSkillInterferingStatus
|
||||
|
||||
arm_func_start MonsterHasLeechSeedStatus
|
||||
MonsterHasLeechSeedStatus: ; 0x02300588
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xe0]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasLeechSeedStatus
|
||||
|
||||
arm_func_start MonsterHasWhifferStatus
|
||||
MonsterHasWhifferStatus: ; 0x023005A4
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xec]
|
||||
cmp r0, #2
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasWhifferStatus
|
||||
|
||||
arm_func_start IsMonsterVisuallyImpaired
|
||||
IsMonsterVisuallyImpaired: ; 0x023005C0
|
||||
stmdb sp!, {r4, lr}
|
||||
ldr r4, [r0, #0xb4]
|
||||
bl IsBlinded
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, pc}
|
||||
ldrb r0, [r4, #0xf1]
|
||||
cmp r0, #2
|
||||
moveq r0, #1
|
||||
ldmeqia sp!, {r4, pc}
|
||||
cmp r0, #4
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end IsMonsterVisuallyImpaired
|
||||
|
||||
arm_func_start IsMonsterMuzzled
|
||||
IsMonsterMuzzled: ; 0x023005FC
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xf3]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end IsMonsterMuzzled
|
||||
|
||||
arm_func_start MonsterHasMiracleEyeStatus
|
||||
MonsterHasMiracleEyeStatus: ; 0x02300618
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xf5]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasMiracleEyeStatus
|
||||
|
||||
arm_func_start MonsterHasNegativeStatus
|
||||
MonsterHasNegativeStatus: ; 0x02300634
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
ldr r4, [r6, #0xb4]
|
||||
mov r5, r1
|
||||
bl IsMonsterDrowsy
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
bl MonsterHasNonvolatileNonsleepStatus
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
bl MonsterHasImmobilizingStatus
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
bl MonsterHasAttackInterferingStatus
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
bl MonsterHasSkillInterferingStatus
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
bl MonsterHasLeechSeedStatus
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
bl MonsterHasWhifferStatus
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
bl IsMonsterVisuallyImpaired
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
bl IsMonsterMuzzled
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov r0, r6
|
||||
bl MonsterHasMiracleEyeStatus
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
ldrb r0, [r4, #0xfe]
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r4, #0x105]
|
||||
#else
|
||||
ldrb r0, [r4, #0x106]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
mov ip, #0
|
||||
#ifdef JAPAN
|
||||
add r3, r4, #0x120
|
||||
#else
|
||||
add r3, r4, #0x124
|
||||
#endif
|
||||
mov r1, ip
|
||||
mov r2, #1
|
||||
b _02300770
|
||||
_02300740:
|
||||
ldrb r0, [r3, ip, lsl #3]
|
||||
add lr, r3, ip, lsl #3
|
||||
tst r0, #1
|
||||
movne r0, r2
|
||||
moveq r0, r1
|
||||
tst r0, #0xff
|
||||
beq _0230076C
|
||||
ldrh r0, [lr, #2]
|
||||
tst r0, #1
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
_0230076C:
|
||||
add ip, ip, #1
|
||||
_02300770:
|
||||
cmp ip, #4
|
||||
blt _02300740
|
||||
mov r1, #0
|
||||
b _02300798
|
||||
_02300780:
|
||||
add r0, r4, r1
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r0, #0x115]
|
||||
#else
|
||||
ldrb r0, [r0, #0x119]
|
||||
#endif
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
add r1, r1, #1
|
||||
_02300798:
|
||||
cmp r1, #5
|
||||
blt _02300780
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end MonsterHasNegativeStatus
|
||||
|
||||
arm_func_start IsMonsterSleeping
|
||||
IsMonsterSleeping: ; 0x023007A8
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xbd]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #5
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #3
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end IsMonsterSleeping
|
||||
|
||||
arm_func_start ov29_023007DC
|
||||
ov29_023007DC: ; 0x023007DC
|
||||
ldr r3, [r0, #0xb4]
|
||||
ldr r0, _02300814 ; =0x000003E7
|
||||
ldrsh r2, [r3, #0x12]
|
||||
ldrsh r1, [r3, #0x16]
|
||||
add r2, r2, r1
|
||||
cmp r2, r0
|
||||
movgt r2, r0
|
||||
mov r0, r2, asr #1
|
||||
ldrsh r1, [r3, #0x10]
|
||||
add r0, r2, r0, lsr #30
|
||||
cmp r1, r0, asr #2
|
||||
movle r0, #1
|
||||
movgt r0, #0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02300814: .word 0x000003E7
|
||||
arm_func_end ov29_023007DC
|
||||
|
||||
113
asm/overlay_29_02300500.s
Normal file
113
asm/overlay_29_02300500.s
Normal file
@@ -0,0 +1,113 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_02300500.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start MonsterHasImmobilizingStatus
|
||||
MonsterHasImmobilizingStatus: ; 0x02300500
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xc4]
|
||||
cmp r0, #3
|
||||
cmpne r0, #5
|
||||
cmpne r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
bx lr
|
||||
arm_func_end MonsterHasImmobilizingStatus
|
||||
|
||||
arm_func_start MonsterHasAttackInterferingStatus
|
||||
MonsterHasAttackInterferingStatus: ; 0x02300520
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xd0]
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasAttackInterferingStatus
|
||||
|
||||
arm_func_start MonsterHasSkillInterferingStatus
|
||||
MonsterHasSkillInterferingStatus: ; 0x0230053C
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xd8]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #2
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #4
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #5
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #6
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasSkillInterferingStatus
|
||||
|
||||
arm_func_start MonsterHasLeechSeedStatus
|
||||
MonsterHasLeechSeedStatus: ; 0x02300588
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xe0]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasLeechSeedStatus
|
||||
|
||||
arm_func_start MonsterHasWhifferStatus
|
||||
MonsterHasWhifferStatus: ; 0x023005A4
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xec]
|
||||
cmp r0, #2
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasWhifferStatus
|
||||
|
||||
arm_func_start IsMonsterVisuallyImpaired
|
||||
IsMonsterVisuallyImpaired: ; 0x023005C0
|
||||
stmdb sp!, {r4, lr}
|
||||
ldr r4, [r0, #0xb4]
|
||||
bl IsBlinded
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
ldmneia sp!, {r4, pc}
|
||||
ldrb r0, [r4, #0xf1]
|
||||
cmp r0, #2
|
||||
moveq r0, #1
|
||||
ldmeqia sp!, {r4, pc}
|
||||
cmp r0, #4
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end IsMonsterVisuallyImpaired
|
||||
|
||||
arm_func_start IsMonsterMuzzled
|
||||
IsMonsterMuzzled: ; 0x023005FC
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xf3]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end IsMonsterMuzzled
|
||||
|
||||
arm_func_start MonsterHasMiracleEyeStatus
|
||||
MonsterHasMiracleEyeStatus: ; 0x02300618
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xf5]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end MonsterHasMiracleEyeStatus
|
||||
41
asm/overlay_29_023007A8.s
Normal file
41
asm/overlay_29_023007A8.s
Normal file
@@ -0,0 +1,41 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_023007A8.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start IsMonsterSleeping
|
||||
IsMonsterSleeping: ; 0x023007A8
|
||||
ldr r0, [r0, #0xb4]
|
||||
ldrb r0, [r0, #0xbd]
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #5
|
||||
moveq r0, #1
|
||||
bxeq lr
|
||||
cmp r0, #3
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
bx lr
|
||||
arm_func_end IsMonsterSleeping
|
||||
|
||||
arm_func_start ov29_023007DC
|
||||
ov29_023007DC: ; 0x023007DC
|
||||
ldr r3, [r0, #0xb4]
|
||||
ldr r0, _02300814 ; =0x000003E7
|
||||
ldrsh r2, [r3, #0x12]
|
||||
ldrsh r1, [r3, #0x16]
|
||||
add r2, r2, r1
|
||||
cmp r2, r0
|
||||
movgt r2, r0
|
||||
mov r0, r2, asr #1
|
||||
ldrsh r1, [r3, #0x10]
|
||||
add r0, r2, r0, lsr #30
|
||||
cmp r1, r0, asr #2
|
||||
movle r0, #1
|
||||
movgt r0, #0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02300814: .word 0x000003E7
|
||||
arm_func_end ov29_023007DC
|
||||
37
asm/overlay_29_0231E990.s
Normal file
37
asm/overlay_29_0231E990.s
Normal file
@@ -0,0 +1,37 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_0231E990.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start ShouldTryEatItem
|
||||
ShouldTryEatItem: ; 0x0231E990
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
cmp r4, #0x45
|
||||
blt _0231E9A8
|
||||
cmp r4, #0x8a
|
||||
ble _0231E9B0
|
||||
_0231E9A8:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, pc}
|
||||
_0231E9B0:
|
||||
bl IsItemValidVeneer
|
||||
cmp r0, #0
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
ldr r0, _0231E9EC ; =EAT_ITEM_EFFECT_IGNORE_LIST
|
||||
b _0231E9D8
|
||||
_0231E9C8:
|
||||
cmp r4, r1
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
add r0, r0, #2
|
||||
_0231E9D8:
|
||||
ldrsh r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _0231E9C8
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_0231E9EC: .word EAT_ITEM_EFFECT_IGNORE_LIST
|
||||
arm_func_end ShouldTryEatItem
|
||||
@@ -1,98 +1,8 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_0231E8F0.inc"
|
||||
.include "overlay_29_0231EA04.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start IsAdjacentToEnemy
|
||||
IsAdjacentToEnemy: ; 0x0231E8F0
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
mov r5, #0
|
||||
mov sl, #1
|
||||
mov r6, r0
|
||||
mov sb, r5
|
||||
mov r8, r5
|
||||
mov r7, sl
|
||||
ldr r4, _0231E98C ; =DIRECTIONS_XY
|
||||
b _0231E97C
|
||||
_0231E914:
|
||||
mov r1, r5, lsl #2
|
||||
add r0, r4, r5, lsl #2
|
||||
ldrsh ip, [r6, #4]
|
||||
ldrsh r3, [r4, r1]
|
||||
ldrsh r2, [r6, #6]
|
||||
ldrsh r1, [r0, #2]
|
||||
add r0, ip, r3
|
||||
add r1, r2, r1
|
||||
bl GetTile
|
||||
ldr r1, [r0, #0xc]
|
||||
cmp r1, #0
|
||||
beq _0231E978
|
||||
ldr r0, [r1]
|
||||
cmp r0, #0
|
||||
moveq r0, sl
|
||||
movne r0, sb
|
||||
cmp r0, #1
|
||||
beq _0231E978
|
||||
mov r0, r6
|
||||
mov r2, r8
|
||||
mov r3, r7
|
||||
bl GetTreatmentBetweenMonsters
|
||||
cmp r0, #1
|
||||
moveq r0, #1
|
||||
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
_0231E978:
|
||||
add r5, r5, #1
|
||||
_0231E97C:
|
||||
cmp r5, #8
|
||||
blt _0231E914
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_0231E98C: .word DIRECTIONS_XY
|
||||
arm_func_end IsAdjacentToEnemy
|
||||
|
||||
arm_func_start ShouldTryEatItem
|
||||
ShouldTryEatItem: ; 0x0231E990
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
cmp r4, #0x45
|
||||
blt _0231E9A8
|
||||
cmp r4, #0x8a
|
||||
ble _0231E9B0
|
||||
_0231E9A8:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, pc}
|
||||
_0231E9B0:
|
||||
bl IsItemValidVeneer
|
||||
cmp r0, #0
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
ldr r0, _0231E9EC ; =EAT_ITEM_EFFECT_IGNORE_LIST
|
||||
b _0231E9D8
|
||||
_0231E9C8:
|
||||
cmp r4, r1
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
add r0, r0, #2
|
||||
_0231E9D8:
|
||||
ldrsh r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _0231E9C8
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_0231E9EC: .word EAT_ITEM_EFFECT_IGNORE_LIST
|
||||
arm_func_end ShouldTryEatItem
|
||||
|
||||
arm_func_start GetMaxPpWrapper
|
||||
GetMaxPpWrapper: ; 0x0231E9F0
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetMaxPp
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, asr #0x10
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end GetMaxPpWrapper
|
||||
|
||||
arm_func_start ov29_0231EA04
|
||||
ov29_0231EA04: ; 0x0231EA04
|
||||
ldr ip, _0231EA14 ; =InitMove
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef HEADERS_TYPES_DUNGEON_MODE_DUNGEON_H_
|
||||
#define HEADERS_TYPES_DUNGEON_MODE_DUNGEON_H_
|
||||
#ifndef PMDSKY_DUNGEON_H
|
||||
#define PMDSKY_DUNGEON_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
#include "enums.h"
|
||||
@@ -1762,5 +1762,4 @@ struct dungeon {
|
||||
u8 field_0x2cb13;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
#endif // PMDSKY_DUNGEON_H
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
|
||||
// Called to get the probability of an item being used or thrown by an AI on the current turn.
|
||||
// item_consumer: Pointer to either the user if it is an item used by the AI or the target if it is an item thrown by the AI
|
||||
// item: Pointer to item
|
||||
// flags: Size-2 bitvector: if bit 0 is set, the AI is throwing the item. If bit 1 is set, it is targeting an ally with the item.
|
||||
// return: Integer in range [0, 100]
|
||||
u32 GetAiUseItemProbability(struct entity *item_consumer, struct item *item, u32 flags);
|
||||
// Called to check if a hostile entity is present in any of the tiles adjacent to an entity.
|
||||
// return: True if yes, false if no
|
||||
bool8 IsAdjacentToEnemy(struct entity *entity);
|
||||
|
||||
#endif //PMDSKY_DUNGEON_AI_ITEM_WEIGHT_H
|
||||
|
||||
11
include/dungeon_logic.h
Normal file
11
include/dungeon_logic.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef PMDSKY_DUNGEON_LOGIC_H
|
||||
#define PMDSKY_DUNGEON_LOGIC_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
|
||||
// Checks if a monster has any "negative" status conditions. This includes a wide variety of non-self-inflicted statuses that could traditionally be viewed as actual "status conditions", as well as speed being lowered and moves being sealed.
|
||||
// monster: entity pointer
|
||||
// check_held_item: flag for whether to check for the held item (see IsMonsterVisuallyImpaired)
|
||||
bool8 MonsterHasNegativeStatus(struct entity *monster, bool8 check_held_item);
|
||||
|
||||
#endif //PMDSKY_DUNGEON_LOGIC_H
|
||||
12
include/dungeon_logic_0.h
Normal file
12
include/dungeon_logic_0.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#ifndef PMDSKY_DUNGEON_LOGIC_0_H
|
||||
#define PMDSKY_DUNGEON_LOGIC_0_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
|
||||
// Checks if a monster has the sleep, nightmare, or yawning status. Note that this excludes the napping status.
|
||||
bool8 IsMonsterDrowsy(struct entity *monster);
|
||||
//Checks if a monster has one of the statuses in the "burn" group, which includes the traditionally non-volatile status conditions (except sleep) in the main series: STATUS_BURN, STATUS_POISONED, STATUS_BADLY_POISONED, STATUS_PARALYSIS, and STATUS_IDENTIFYING.
|
||||
// STATUS_IDENTIFYING is probably included based on enum status_id? Unless it's handled differently somehow.
|
||||
bool8 MonsterHasNonvolatileNonsleepStatus(struct entity *monster);
|
||||
|
||||
#endif //PMDSKY_DUNGEON_LOGIC_0_H
|
||||
@@ -2,15 +2,16 @@
|
||||
#define PMDSKY_DUNGEON_MODE_H
|
||||
|
||||
#include "direction.h"
|
||||
#include "dungeon_mode_common.h"
|
||||
#include "enums.h"
|
||||
#include "item.h"
|
||||
#include "move.h"
|
||||
#include "graphics.h"
|
||||
#include "util.h"
|
||||
|
||||
#define NUM_PICKED_IQ_SKILLS 3
|
||||
#define MAX_MON_MOVES 4
|
||||
#define MAX_SPEED_STAGE 4
|
||||
#define NUM_SPEED_COUNTERS 5
|
||||
|
||||
// Used in various contexts, like with entity positions in the dungeon
|
||||
struct position {
|
||||
|
||||
@@ -2900,17 +2900,6 @@ enum movement_flag
|
||||
MOVEMENT_FLAG_SWAPPING_PLACES_PETRIFIED_ALLY = 1 << 15, // Set if the Pokémon is petrified and the leader cures them by swapping places.
|
||||
};
|
||||
|
||||
enum move_flag
|
||||
{
|
||||
MOVE_FLAG_EXISTS = 1 << 0,
|
||||
MOVE_FLAG_SUBSEQUENT_IN_LINK_CHAIN = 1 << 1, // This move is linked with the previous move in the Pokémon's moveset.
|
||||
MOVE_FLAG_ENABLED_FOR_AI = 1 << 2, // Enabled for the AI to use.
|
||||
MOVE_FLAG_SET = 1 << 3, // This move can be triggered by pressing L+A instead of having to go to the move menu.
|
||||
MOVE_FLAG_LAST_USED = 1 << 4, // The most recent move used by the Pokémon.
|
||||
MOVE_FLAG_DISABLED = 1 << 5, // Disabled by an effect like Taunt.
|
||||
MOVE_FLAG_INTERNAL_MARKER = 1 << 7 // Possibly some kind of flag used internally to mark a move and find it again
|
||||
};
|
||||
|
||||
// Mobility types for monsters
|
||||
enum mobility_type {
|
||||
MOBILITY_NORMAL = 0,
|
||||
|
||||
@@ -1,8 +1,30 @@
|
||||
#ifndef HEADERS_TYPES_DUNGEON_MODE_COMMON_H_
|
||||
#define HEADERS_TYPES_DUNGEON_MODE_COMMON_H_
|
||||
#ifndef PMDSKY_MOVE_H
|
||||
#define PMDSKY_MOVE_H
|
||||
|
||||
#include "enums.h"
|
||||
|
||||
enum move_flag
|
||||
{
|
||||
MOVE_FLAG_EXISTS = 1 << 0,
|
||||
MOVE_FLAG_SUBSEQUENT_IN_LINK_CHAIN = 1 << 1, // This move is linked with the previous move in the Pokémon's moveset.
|
||||
MOVE_FLAG_ENABLED_FOR_AI = 1 << 2, // Enabled for the AI to use.
|
||||
MOVE_FLAG_SET = 1 << 3, // This move can be triggered by pressing L+A instead of having to go to the move menu.
|
||||
MOVE_FLAG_LAST_USED = 1 << 4, // The most recent move used by the Pokémon.
|
||||
MOVE_FLAG_DISABLED = 1 << 5, // Disabled by an effect like Taunt.
|
||||
MOVE_FLAG_INTERNAL_MARKER = 1 << 7 // Possibly some kind of flag used internally to mark a move and find it again
|
||||
};
|
||||
|
||||
enum move_flag_2
|
||||
{
|
||||
MOVE_FLAG_SEALED = 1 << 0,
|
||||
MOVE_FLAG_CONSUME_PP = 1 << 2,
|
||||
MOVE_FLAG_CONSUME_2_PP = 1 << 3,
|
||||
MOVE_FLAG_CONSUME_4_PP = 1 << 5,
|
||||
MOVE_FLAG_MULTITALENT_PP_BOOST = 1 << 8,
|
||||
MOVE_FLAG_EXCLUSIVE_ITEM_PP_BOOST = 1 << 9,
|
||||
MOVE_FLAG_UNKNOWN_PP_BOOST = 1 << 10,
|
||||
};
|
||||
|
||||
// Monster move info
|
||||
struct move {
|
||||
// 0x0: flags: 1-byte bitfield
|
||||
@@ -28,12 +50,14 @@ struct move {
|
||||
// bool8 f_consume_4_pp : 1;
|
||||
// u16 flags2_unk7 : 1;
|
||||
// u16 flags2_unk8 : 1;
|
||||
// bool8 f_multitalent_pp_boost : 1; // The IQ skill Multitalent is actively boosting move PP
|
||||
// bool8 f_exclusive_item_pp_boost : 1; // A PP-boosting exclusive item is in effect
|
||||
// u16 flags3_unk10 : 6;
|
||||
// bool8 f_unknown_pp_boost : 1; // A PP-boosting effect? Possibly unused?
|
||||
// uint16_t flags3_unk11 : 5;
|
||||
|
||||
enum move_id id : 16; // 0x4
|
||||
enum move_id id; // 0x4
|
||||
u8 pp; // 0x6: Current PP
|
||||
u8 ginseng; // 0x7: Ginseng boost
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // PMDSKY_MOVE_H
|
||||
112
include/move_data.h
Normal file
112
include/move_data.h
Normal file
@@ -0,0 +1,112 @@
|
||||
#ifndef PMDSKY_MOVE_DATA_H
|
||||
#define PMDSKY_MOVE_DATA_H
|
||||
|
||||
#include "util.h"
|
||||
|
||||
// Move target (i.e., who does a move affect when used?)
|
||||
// In the move data, this is the lower 4 bits of the joint Range + Target bitfield
|
||||
enum move_target
|
||||
{
|
||||
TARGET_ENEMIES = 0,
|
||||
TARGET_PARTY = 1, // including the user
|
||||
TARGET_ALL = 2, // including the user
|
||||
TARGET_USER = 3,
|
||||
TARGET_ENEMIES_AFTER_CHARGING = 4, // in some sense the user while charging, then enemies
|
||||
TARGET_ALL_EXCEPT_USER = 5,
|
||||
TARGET_TEAMMATES = 6, // excluding the user
|
||||
TARGET_SPECIAL = 15, // for weird moves
|
||||
};
|
||||
|
||||
// Move range.
|
||||
// In the move data, this is the upper 4 bits of the joint Range + Target bitfield
|
||||
enum move_range
|
||||
{
|
||||
RANGE_FRONT = 0, // 1 tile in front
|
||||
RANGE_FRONT_AND_SIDES = 1, // also cuts corners
|
||||
RANGE_NEARBY = 2, // the 8 surrounding tiles
|
||||
RANGE_ROOM = 3, // the whole room
|
||||
RANGE_FRONT_2 = 4, // 2 tiles in front, also cuts corners but the AI doesn't account for that
|
||||
RANGE_FRONT_10 = 5, // 10 tiles in front
|
||||
RANGE_FLOOR = 6, // the whole floor
|
||||
// Depends on the move:
|
||||
// - if the target is the user, then the range is also just the user
|
||||
// - if the target is enemies after charging, the range is front or front with corner cutting,
|
||||
// depending on the move
|
||||
RANGE_USER = 7,
|
||||
RANGE_FRONT_WITH_CORNER_CUTTING = 8, // same as RANGE_FRONT but cuts corners
|
||||
// same as RANGE_FRONT_2 but the AI accounts for corner-cutting
|
||||
RANGE_FRONT_2_WITH_CORNER_CUTTING = 9,
|
||||
RANGE_SPECIAL = 15, // for weird moves
|
||||
};
|
||||
|
||||
// Conditions checked by the AI to determine when a move should be used
|
||||
// It does not affect how the move works
|
||||
enum move_ai_condition
|
||||
{
|
||||
AI_CONDITION_NONE = 0,
|
||||
// The AI will consider a target elegible wirh a chance equal to the
|
||||
// move's "ai_condition_random_chance" value
|
||||
AI_CONDITION_RANDOM = 1,
|
||||
AI_CONDITION_HP_25 = 2, // Target has HP <= 25%
|
||||
AI_CONDITION_STATUS = 3, // Target has a negative status condition
|
||||
AI_CONDITION_ASLEEP = 4, // Target is asleep, napping or in a nightmare
|
||||
AI_CONDITION_GHOST = 5, // Target is ghost-type and not exposed
|
||||
AI_CONDITION_HP_25_OR_STATUS = 6, // Target has HP <= 25% or a negative status condition
|
||||
};
|
||||
|
||||
// In the move data, the target and range are encoded together in the first byte of a single
|
||||
// two-byte field. The target is the lower half, and the range is the upper half.
|
||||
struct move_target_and_range
|
||||
{
|
||||
enum move_target target : 4;
|
||||
enum move_range range : 4;
|
||||
enum move_ai_condition ai_condition : 4;
|
||||
};
|
||||
|
||||
// Data for a single move
|
||||
struct move_data
|
||||
{
|
||||
u16 base_power; // 0x0
|
||||
u8 type; // 0x2
|
||||
u8 category; // 0x3
|
||||
struct move_target_and_range target_range; // 0x4
|
||||
struct move_target_and_range ai_target_range; // 0x6: Target/range as seen by the AI
|
||||
u8 pp; // 0x8
|
||||
u8 ai_weight; // 0x9: Possibly. Weight for AI's random move selection
|
||||
// 0xA: Both accuracy values are used to calculate the move's actual accuracy.
|
||||
// See the PMD Info Spreadsheet.
|
||||
u8 accuracy1;
|
||||
u8 accuracy2; // 0xB
|
||||
// 0xC: If this move has a random chance AI condition (see enum move_ai_condition),
|
||||
// this is the chance that the AI will consider a potential target as elegible
|
||||
u8 ai_condition_random_chance;
|
||||
u8 strikes; // 0xD: Number of times the move hits (i.e. for multi-hit moves)
|
||||
u8 max_ginseng_boost; // 0xE: Maximum possible Ginseng boost for this move
|
||||
u8 crit_chance; // 0xF: The base critical hit chance
|
||||
bool8 reflected_by_magic_coat; // 0x10
|
||||
bool8 can_be_snatched; // 0x11
|
||||
bool8 fails_while_muzzled; // 0x12
|
||||
// 0x13: Seems to be used by the AI with Status Checker for using moves against frozen monsters
|
||||
bool8 ai_can_use_against_frozen;
|
||||
bool8 usable_while_taunted; // 0x14
|
||||
// 0x15: Index in the string files of the range string to be displayed in the move info screen
|
||||
u8 range_string_idx;
|
||||
u16 id; // 0x16
|
||||
// 0x18: Index in the string files of the message string to be displayed in the dungeon message
|
||||
// log when a move is used. E.g., the default (0) is "[User] used [move]!"
|
||||
u16 message_string_idx;
|
||||
};
|
||||
|
||||
// The move data table, as contained within /BALANCE/waza_p.bin, and when loaded into memory.
|
||||
struct move_data_table
|
||||
{
|
||||
struct move_data moves[559]; // 0x8
|
||||
};
|
||||
|
||||
struct move_data_table_outer
|
||||
{
|
||||
u8 fill0[8];
|
||||
struct move_data_table *moves;
|
||||
};
|
||||
|
||||
#endif //PMDSKY_MOVE_DATA_H
|
||||
10
include/moves.h
Normal file
10
include/moves.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef PMDSKY_MOVES_H
|
||||
#define PMDSKY_MOVES_H
|
||||
|
||||
#include "move.h"
|
||||
|
||||
// Gets the maximum PP for a given move.
|
||||
// return: max PP for the given move, capped at 99
|
||||
u32 GetMaxPp(struct move *move);
|
||||
|
||||
#endif //PMDSKY_MOVES_H
|
||||
10
include/overlay_29_0231E9F0.h
Normal file
10
include/overlay_29_0231E9F0.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef PMDSKY_OVERLAY_29_0231E9F0_H
|
||||
#define PMDSKY_OVERLAY_29_0231E9F0_H
|
||||
|
||||
#include "move.h"
|
||||
|
||||
// Gets the maximum PP for a given move. A wrapper around the function in the ARM 9 binary.
|
||||
// return: max PP for the given move, capped at 99
|
||||
s16 GetMaxPpWrapper(struct move *move);
|
||||
|
||||
#endif //PMDSKY_OVERLAY_29_0231E9F0_H
|
||||
@@ -2,7 +2,7 @@
|
||||
#define PMDSKY_OVERLAY_29_0232E250_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
#include "dungeon_mode_common.h"
|
||||
#include "move.h"
|
||||
#include "item.h"
|
||||
|
||||
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
|
||||
|
||||
10
main.lsf
10
main.lsf
@@ -29,6 +29,8 @@ Static main
|
||||
Object asm/main_0200E864.o
|
||||
Object src/main_0200ECFC.o
|
||||
Object asm/main_0200ED1C.o
|
||||
Object src/moves.o
|
||||
Object asm/main_02013AD0.o
|
||||
Object src/main_02025788.o
|
||||
Object asm/main_020257FC.o
|
||||
Object src/main_0202593C.o
|
||||
@@ -294,6 +296,10 @@ Overlay OVY_29
|
||||
Object asm/overlay_29_022FF8C8.o
|
||||
Object src/overlay_29_023000E4.o
|
||||
Object asm/overlay_29_02300108.o
|
||||
Object src/dungeon_logic_0.o
|
||||
Object asm/overlay_29_02300500.o
|
||||
Object src/dungeon_logic.o
|
||||
Object asm/overlay_29_023007A8.o
|
||||
Object src/dungeon_capabilities.o
|
||||
Object asm/overlay_29_023008DC.o
|
||||
Object src/dungeon_capabilities_1.o
|
||||
@@ -373,7 +379,9 @@ Overlay OVY_29
|
||||
Object src/overlay_29_0231CBC8.o
|
||||
Object asm/overlay_29_0231CBEC.o
|
||||
Object src/dungeon_ai_item_weight.o
|
||||
Object asm/overlay_29_0231E8F0.o
|
||||
Object asm/overlay_29_0231E990.o
|
||||
Object src/overlay_29_0231E9F0.o
|
||||
Object asm/overlay_29_0231EA04.o
|
||||
Object src/overlay_29_0231EDD8.o
|
||||
Object asm/overlay_29_0231EDFC.o
|
||||
Object src/overlay_29_0231F570.o
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
#include "dungeon_ai_item_weight.h"
|
||||
#include "dungeon_ai_targeting_1.h"
|
||||
#include "dungeon_logic.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_pokemon_attributes_1.h"
|
||||
#include "dungeon_statuses.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "dungeon_util_static.h"
|
||||
#include "main_02054BE0.h"
|
||||
#include "number_util.h"
|
||||
#include "overlay_29_0231E9F0.h"
|
||||
#include "targeting.h"
|
||||
#include "util.h"
|
||||
|
||||
extern bool8 IsAdjacentToEnemy(struct entity *entity);
|
||||
extern u8 GetMaxPpWrapper(struct move *move);
|
||||
extern bool8 MonsterHasNegativeStatus(struct entity *monster, bool8 check_held_item);
|
||||
extern enum mobility_type GetMobilityType(s16 monster_id);
|
||||
|
||||
u32 GetAiUseItemProbability(struct entity *item_consumer, struct item *item, u32 flags)
|
||||
@@ -368,3 +371,18 @@ u32 GetAiUseItemProbability(struct entity *item_consumer, struct item *item, u32
|
||||
}
|
||||
return item_weight;
|
||||
}
|
||||
|
||||
bool8 IsAdjacentToEnemy(struct entity *entity)
|
||||
{
|
||||
for (s32 direction = 0; direction < NUM_DIRECTIONS; direction++)
|
||||
{
|
||||
struct tile *map_tile = GetTile(entity->pos.x + DIRECTIONS_XY[direction].x, entity->pos.y + DIRECTIONS_XY[direction].y);
|
||||
if (map_tile->monster != NULL)
|
||||
{
|
||||
s32 no_pokemon = map_tile->monster->type == ENTITY_NOTHING;
|
||||
if (no_pokemon != TRUE && GetTreatmentBetweenMonsters(entity, map_tile->monster, FALSE, TRUE) == TREATMENT_TREAT_AS_ENEMY)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
74
src/dungeon_logic.c
Normal file
74
src/dungeon_logic.c
Normal file
@@ -0,0 +1,74 @@
|
||||
#include "dungeon_logic.h"
|
||||
#include "dungeon_logic_0.h"
|
||||
#include "dungeon_util_static.h"
|
||||
|
||||
extern bool8 MonsterHasImmobilizingStatus(struct entity *monster);
|
||||
extern bool8 MonsterHasAttackInterferingStatus(struct entity *monster);
|
||||
extern bool8 MonsterHasSkillInterferingStatus(struct entity *monster);
|
||||
extern bool8 MonsterHasLeechSeedStatus(struct entity *monster);
|
||||
extern bool8 MonsterHasWhifferStatus(struct entity *monster);
|
||||
extern bool8 IsMonsterVisuallyImpaired(struct entity *monster, bool8 check_held_item);
|
||||
extern bool8 IsMonsterMuzzled(struct entity *monster);
|
||||
extern bool8 MonsterHasMiracleEyeStatus(struct entity *monster);
|
||||
|
||||
bool8 MonsterHasNegativeStatus(struct entity *monster, bool8 check_held_item)
|
||||
{
|
||||
struct monster *pokemon_info = GetEntInfo(monster);
|
||||
|
||||
if (IsMonsterDrowsy(monster))
|
||||
return TRUE;
|
||||
|
||||
if (MonsterHasNonvolatileNonsleepStatus(monster))
|
||||
return TRUE;
|
||||
|
||||
if (MonsterHasImmobilizingStatus(monster))
|
||||
return TRUE;
|
||||
|
||||
if (MonsterHasAttackInterferingStatus(monster))
|
||||
return TRUE;
|
||||
|
||||
if (MonsterHasSkillInterferingStatus(monster))
|
||||
return TRUE;
|
||||
|
||||
if (MonsterHasLeechSeedStatus(monster))
|
||||
return TRUE;
|
||||
|
||||
if (MonsterHasWhifferStatus(monster))
|
||||
return TRUE;
|
||||
|
||||
if (IsMonsterVisuallyImpaired(monster, check_held_item))
|
||||
return TRUE;
|
||||
|
||||
if (IsMonsterMuzzled(monster))
|
||||
return TRUE;
|
||||
|
||||
if (MonsterHasMiracleEyeStatus(monster))
|
||||
return TRUE;
|
||||
|
||||
if (pokemon_info->exposed)
|
||||
return TRUE;
|
||||
|
||||
if (pokemon_info->perish_song_turns != 0)
|
||||
return TRUE;
|
||||
|
||||
for (s32 i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
bool8 move_exists;
|
||||
struct move *move = &pokemon_info->moves.moves[i];
|
||||
if (move->flags0 & MOVE_FLAG_EXISTS)
|
||||
move_exists = TRUE;
|
||||
else
|
||||
move_exists = FALSE;
|
||||
|
||||
if (move_exists && move->flags2 & MOVE_FLAG_SEALED)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < NUM_SPEED_COUNTERS; i++)
|
||||
{
|
||||
if (pokemon_info->speed_down_counters[i] != 0)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
22
src/dungeon_logic_0.c
Normal file
22
src/dungeon_logic_0.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include "dungeon_logic_0.h"
|
||||
#include "dungeon_util_static.h"
|
||||
|
||||
bool8 IsMonsterDrowsy(struct entity *monster)
|
||||
{
|
||||
struct monster *pokemon_info = GetEntInfo(monster);
|
||||
if (pokemon_info->sleep_class_status.sleep == STATUS_SLEEP_SLEEP)
|
||||
return TRUE;
|
||||
|
||||
if (pokemon_info->sleep_class_status.sleep == STATUS_SLEEP_NIGHTMARE)
|
||||
return TRUE;
|
||||
|
||||
if (pokemon_info->sleep_class_status.sleep == STATUS_SLEEP_YAWNING)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 MonsterHasNonvolatileNonsleepStatus(struct entity *monster)
|
||||
{
|
||||
return GetEntInfo(monster)->burn_class_status.burn != STATUS_BURN_NONE;
|
||||
}
|
||||
27
src/moves.c
Normal file
27
src/moves.c
Normal file
@@ -0,0 +1,27 @@
|
||||
#include "moves.h"
|
||||
#include "move_data.h"
|
||||
|
||||
extern struct move_data_table_outer DUNGEON_MOVE_TABLES;
|
||||
|
||||
extern s16 MULTITALENT_PP_BOOST_AMOUNT;
|
||||
extern s16 EXCLUSIVE_ITEM_PP_BOOST_AMOUNT;
|
||||
extern s16 UNKNOWN_PP_BOOST_AMOUNT;
|
||||
|
||||
u32 GetMaxPp(struct move *move)
|
||||
{
|
||||
s16 pp = DUNGEON_MOVE_TABLES.moves->moves[move->id].pp;
|
||||
|
||||
if (move->flags2 & MOVE_FLAG_MULTITALENT_PP_BOOST)
|
||||
pp += MULTITALENT_PP_BOOST_AMOUNT;
|
||||
|
||||
if (move->flags2 & MOVE_FLAG_EXCLUSIVE_ITEM_PP_BOOST)
|
||||
pp += EXCLUSIVE_ITEM_PP_BOOST_AMOUNT;
|
||||
|
||||
if (move->flags2 & MOVE_FLAG_UNKNOWN_PP_BOOST)
|
||||
pp += UNKNOWN_PP_BOOST_AMOUNT;
|
||||
|
||||
if (pp > 99)
|
||||
pp = 99;
|
||||
|
||||
return pp;
|
||||
}
|
||||
7
src/overlay_29_0231E9F0.c
Normal file
7
src/overlay_29_0231E9F0.c
Normal file
@@ -0,0 +1,7 @@
|
||||
#include "overlay_29_0231E9F0.h"
|
||||
#include "moves.h"
|
||||
|
||||
s16 GetMaxPpWrapper(struct move *move)
|
||||
{
|
||||
return GetMaxPp(move);
|
||||
}
|
||||
Reference in New Issue
Block a user