sovereignx/src/item_ball.c
psf bf8b09b1b6
Item Ball refactor / Pluralize item names for giveitem and finditem (#3942)
* Emptied out item_ball_scripts
Added GetObjectEventTrainerRangeFromTemplate
Added Common_EventScript_FindItem

* Replaced trainer_sight_or_berry_tree_id with item constant
Replaced scripts with Common_EventScript_FindItem

* Renamed to GetItemBallIdAndAmountFromTemplate
Moved to item_ball.c

* Updated ObjectEventTemplate

* Updated inc files to support plural item names

* Refactored CopyItemNameHandlePlural to handle all items

* Change failsafe in GetItemBallIdFromTemplate to be ITEM_NONE + 1 instead of ITEMS_COUNT

* Converted spaces to tabs
https://github.com/rh-hideout/pokeemerald-expansion/pull/3942\#discussion_r1446415663
https://github.com/rh-hideout/pokeemerald-expansion/pull/3942\#discussion_r1446415525
https://github.com/rh-hideout/pokeemerald-expansion/pull/3942\#discussion_r1446415409
https://github.com/rh-hideout/pokeemerald-expansion/pull/3942\#discussion_r1446415130

* Added warning on object_event macro to prevent silent failure
Reverted global.fieldmap to original state, per feedback

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2024-01-14 21:35:45 +01:00

32 lines
925 B
C

#include "global.h"
#include "item_ball.h"
#include "event_data.h"
#include "constants/event_objects.h"
#include "constants/items.h"
static u32 GetItemBallAmountFromTemplate(u32);
static u32 GetItemBallIdFromTemplate(u32);
static u32 GetItemBallAmountFromTemplate(u32 itemBallId)
{
u32 amount = gMapHeader.events->objectEvents[itemBallId].movementRangeX;
if (amount > MAX_BAG_ITEM_CAPACITY)
return MAX_BAG_ITEM_CAPACITY;
return (amount == 0) ? 1 : amount;
}
static u32 GetItemBallIdFromTemplate(u32 itemBallId)
{
u32 itemId = gMapHeader.events->objectEvents[itemBallId].trainerRange_berryTreeId;
return (itemId >= ITEMS_COUNT) ? (ITEM_NONE + 1) : itemId;
}
void GetItemBallIdAndAmountFromTemplate(void)
{
u32 itemBallId = (gSpecialVar_LastTalked - 1);
gSpecialVar_Result = GetItemBallIdFromTemplate(itemBallId);
gSpecialVar_0x8009 = GetItemBallAmountFromTemplate(itemBallId);
}