Merge branch 'followers' into followers-expanded-id

This commit is contained in:
Ariel A 2023-02-26 18:34:35 -05:00
commit 2c922adbf9
3 changed files with 25 additions and 9 deletions

View file

@ -4,13 +4,13 @@ This is a fork of the [matching decompilation](https://github.com/pret/pokeemera
This fork tries to maintain vanilla compatibility whenever possible. It doesn't increase the size of any save data structure or the object event structure.
There are several branches, each with one main feature:
There are several branches, each with one main feature (and sometimes some extra stuff):
**followers** branch:
* [HGSS-style pokémon followers](https://bulbapedia.bulbagarden.net/wiki/Walking_Pok%C3%A9mon#Pok.C3.A9mon_HeartGold_and_SoulSilver) for all 386 pokémon, including emotes, the 28 Unown forms and a majority of follower messages.
* Dynamic overworld palettes & reflections compatible with vanilla berry trees.
* Function to change a pokemon's nature while preserving most properties of its PID.
* Function to detect newer emulators/new GBA hardware.
* PID (but not legitimacy) preserving Pokémon nature-changing function
* Function to detect modern emulators/GBA hardware.
**icons** branch:
* Everything from the **followers** branch.
@ -28,6 +28,11 @@ There are several branches, each with one main feature:
* WIP interframe-blended lamp lights at night, i.e in Rustboro.
* HGSS-style alpha-blended shadows for object events.
Additional branches to mention:
* `followers-expanded-id` - like `followers`, but includes backwards-compatible 16-bit graphics IDs for object events.
* `lighting-expanded-id` - like the above but for `lighting`.
To set up the repository, see [INSTALL.md](INSTALL.md).
## See also

View file

@ -2505,6 +2505,12 @@ void SetLinkContestPlayerGfx(void)
}
}
// copied from event_object_movement
#define OBJ_EVENT_PAL_TAG_BRENDAN 0x1100
#define OBJ_EVENT_PAL_TAG_MAY 0x1110
#define OBJ_EVENT_PAL_TAG_RS_BRENDAN 0x1122
#define OBJ_EVENT_PAL_TAG_RS_MAY 0x1123
void LoadLinkContestPlayerPalettes(void)
{
int i;
@ -2513,28 +2519,28 @@ void LoadLinkContestPlayerPalettes(void)
struct Sprite *sprite;
static const u8 sContestantLocalIds[CONTESTANT_COUNT] = { 3, 4, 5, 14 };
gReservedSpritePaletteCount = 12;
// gReservedSpritePaletteCount = 12;
// TODO: Does dynamically allocating link player palettes break link contests?
if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)
{
for (i = 0; i < gNumLinkContestPlayers; i++)
{
objectEventId = GetObjectEventIdByLocalIdAndMap(sContestantLocalIds[i], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
sprite = &gSprites[gObjectEvents[objectEventId].spriteId];
sprite->oam.paletteNum = 6 + i;
version = (u8)gLinkPlayers[i].version;
if (version == VERSION_RUBY || version == VERSION_SAPPHIRE)
{
if (gLinkPlayers[i].gender == MALE)
LoadPalette(gObjectEventPal_RubySapphireBrendan, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP);
sprite->oam.paletteNum = LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_RS_BRENDAN);
else
LoadPalette(gObjectEventPal_RubySapphireMay, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP);
sprite->oam.paletteNum = LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_RS_MAY);
}
else
{
if (gLinkPlayers[i].gender == MALE)
LoadPalette(gObjectEventPal_Brendan, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP);
sprite->oam.paletteNum = LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_BRENDAN);
else
LoadPalette(gObjectEventPal_May, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP);
sprite->oam.paletteNum = LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_MAY);
}
}
}

View file

@ -5066,6 +5066,11 @@ bool8 FollowablePlayerMovement_Step(struct ObjectEvent *objectEvent, struct Spri
ClearObjectEventMovement(objectEvent, sprite);
if (objectEvent->invisible) { // Animate exiting pokeball
// Player is jumping, but follower is invisible
if (PlayerGetCopyableMovement() == COPY_MOVE_JUMP2) {
sprite->sTypeFuncId = 0; // return to shadowing state
return FALSE;
}
MoveObjectEventToMapCoords(objectEvent, targetX, targetY);
ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_EXIT_POKEBALL);
objectEvent->singleMovementActive = 1;