Fix status interactions

Both in-battle (tile placement in target window and checkerboard refresh) and outside of battle (header tiles not having proper background for death palette)
This commit is contained in:
Lorenzooone 2019-09-10 13:41:40 +02:00
parent de901d6d27
commit a8a221ae2d
4 changed files with 19 additions and 8 deletions

View File

@ -26,7 +26,15 @@ void printTargetOfAttack(short a, short target)
byte val = *(pointer2 + target);
unsigned short ailmentTile = ailmentTileSetup((byte*)(0x2020CCF + (val * 0x94)), 0);
if(ailmentTile >= 1)
map_tile(ailmentTile, window->window_x + 0x26, window->window_y);
{
map_tile(ailmentTile, window->window_x + 0x13, window->window_y);
map_tile(ailmentTile + 0x20, window->window_x + 0x13, window->window_y + 1);
}
else
{
map_tile(0x1FF, window->window_x + 0x13, window->window_y);
map_tile(0x1FF, window->window_x + 0x13, window->window_y + 1);
}
}
else
{

View File

@ -16,12 +16,10 @@ void printNumberOfStatus(int maxLength, int value, int blankX, int y, int strX,
void printStatusSymbolArrangement(unsigned short symbolTile, WINDOW* window)
{
unsigned short *arrangementBase = ((*tilemap_pointer) + (((window->window_y) + 2) << 5) + window->window_x);
unsigned short ailmentTile = ((*tile_offset) + symbolTile) | (*palette_mask);
(*(arrangementBase + 10)) = ailmentTile;
map_tile(symbolTile, window->window_x + 0xA, window->window_y + 2);
if(symbolTile == 0x1FF)
ailmentTile -= 0x20;
(*(arrangementBase + 42)) = (ailmentTile + 0x20);
symbolTile -= 0x20;
map_tile(symbolTile + 0x20, window->window_x + 0xA, window->window_y + 3);
}
void printStatusString(WINDOW* window, int value)

View File

@ -0,0 +1 @@
33333333333333333333333333333333

View File

@ -14,11 +14,13 @@
//==============================================================================
.org 0x8AFED84 :: .incbin "data/m2-mainfont1-empty.bin"
.org 0x8B03DE4 :: .incbin "data/m2-status-symbols.bin"
.org 0x8B0F424 :: .incbin "data/m2-mainfont2-empty.bin"
.org 0x8B13424 :: .incbin "data/m2-mainfont3-empty.bin"
.org 0x8B088A4 :: .incbin "data/m2-shifted-cursor.bin"
.org 0x8B03384 :: .incbin "data/m2-header-bg.bin"
.org 0x8B03964 :: .incbin "data/m2-header-bg-sigle-tile.bin"
.org 0x8B03D64 :: .incbin "data/m2-header-bg-sigle-tile.bin"
.org 0x8B03DE4 :: .incbin "data/m2-status-symbols.bin"
// Greek letters
.org 0x8B1B907 :: db 0x8B // alpha
@ -484,9 +486,11 @@ pop {pc}
// Change checkerboard printing to properly handle statuses
//---------------------------------------------------------
.org 0x80D6960 :: bl sick_name
.org 0x80D68C2 :: bl dead_name
.org 0x80D6960 :: bl sick_name
.org 0x80D6A8A :: bl alive_name
.org 0x80D6B5E :: bl dead_name
.org 0x80D6BFA :: bl sick_name
.org 0x80D6DAC :: bl d6dac_alive_name
.org m2_stat_symb_checker :: .incbin "data/m2-status-symbols-checkerboard.bin"