Skip to content

Commit

Permalink
fix LoadPartyImage for shift builds
Browse files Browse the repository at this point in the history
  • Loading branch information
Rainchus committed Sep 12, 2024
1 parent 2cfb725 commit 3e6d7df
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions src/world/common/todo/LoadPartyImage.inc.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,35 @@
#error "Define PARTY_IMAGE to the asset name to use LoadPartyImage."
#endif

#ifdef SHIFT
//this is required on modern compilers to guarantee the raster comes directly after the palette
typedef struct Img {
u16 palette[256];
u8 raster[0x3D90]; // 10 bytes added for padding: 150 * 105 = 0x3D86
} PartyImage;

static PartyImage img;

API_CALLABLE(N(LoadPartyImage)) {
static MessageImageData image;

u32 decompressedSize;
void* compressed = load_asset_by_name(PARTY_IMAGE, &decompressedSize);

decode_yay0(compressed, &img);
general_heap_free(compressed);

image.raster = img.raster;
image.palette = img.palette;
image.width = 150;
image.height = 105;
image.format = G_IM_FMT_CI;
image.bitDepth = G_IM_SIZ_8b;
set_message_images(&image);
return ApiStatus_DONE2;
}
#else

API_CALLABLE(N(LoadPartyImage)) {
static PAL_BIN palette[256];
static IMG_BIN raster[0x3D90]; // 10 bytes added for padding: 150 * 105 = 3D86
Expand All @@ -26,4 +55,6 @@ API_CALLABLE(N(LoadPartyImage)) {
return ApiStatus_DONE2;
}

#endif

#undef PARTY_IMAGE

0 comments on commit 3e6d7df

Please sign in to comment.