Skip to content

Commit

Permalink
tr2/text: fix scaling dragon icons
Browse files Browse the repository at this point in the history
Resolves #1631.
  • Loading branch information
rr- committed Feb 10, 2025
1 parent 6009a57 commit 2ecb4c1
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 34 deletions.
1 change: 1 addition & 0 deletions docs/tr2/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
- changed the `/kill` command with no arguments to look for enemies within 5 tiles (#2297)
- changed the game data to use a separate strings file for text information, removing it from the game flow file
- changed dynamic lighting for gun flashes and explosions to be optional (#2357)
- fixed scale of secret icons on level complete summary (#1631)
- fixed showing inventory ring up/down arrows when uncalled for (#2225)
- fixed Lara never stepping backwards off a step using her right foot (#1602)
- fixed blood spawning on Lara from gunshots using incorrect positioning data (#2253)
Expand Down
60 changes: 30 additions & 30 deletions src/libtrx/game/text_tr2.def
Original file line number Diff line number Diff line change
Expand Up @@ -83,36 +83,36 @@ GLYPH_DEFINE("\\{grave accent}", GLYPH_COMBINING, 16, 77)
GLYPH_DEFINE("&", GLYPH_NORMAL, 9, 78)
GLYPH_DEFINE("'", GLYPH_NORMAL, 4, 79)

GLYPH_DEFINE( "\\{arrow up}", GLYPH_NORMAL, 12, 80)
GLYPH_DEFINE( "\\{arrow down}", GLYPH_NORMAL, 12, 81)
GLYPH_DEFINE( "\\{small digit 0}", GLYPH_NORMAL, 7, 82)
GLYPH_DEFINE( "\\{small digit 1}", GLYPH_NORMAL, 5, 83)
GLYPH_DEFINE( "\\{small digit 2}", GLYPH_NORMAL, 7, 84)
GLYPH_DEFINE( "\\{small digit 3}", GLYPH_NORMAL, 7, 85)
GLYPH_DEFINE( "\\{small digit 4}", GLYPH_NORMAL, 7, 86)
GLYPH_DEFINE( "\\{small digit 5}", GLYPH_NORMAL, 7, 87)
GLYPH_DEFINE( "\\{small digit 6}", GLYPH_NORMAL, 7, 88)
GLYPH_DEFINE( "\\{small digit 7}", GLYPH_NORMAL, 7, 89)
GLYPH_DEFINE( "\\{small digit 8}", GLYPH_NORMAL, 7, 90)
GLYPH_DEFINE( "\\{small digit 9}", GLYPH_NORMAL, 7, 91)
GLYPH_DEFINE( "\\{button empty}", GLYPH_NORMAL, 16, 92)
GLYPH_DEFINE( "\\{button triangle}", GLYPH_NORMAL, 16, 93)
GLYPH_DEFINE( "\\{button circle}", GLYPH_NORMAL, 16, 94)
GLYPH_DEFINE( "\\{button x}", GLYPH_NORMAL, 16, 95)
GLYPH_DEFINE( "\\{button square}", GLYPH_NORMAL, 16, 96)
GLYPH_DEFINE( "\\{button l1}", GLYPH_NORMAL, 16, 97)
GLYPH_DEFINE( "\\{button r1}", GLYPH_NORMAL, 16, 98)
GLYPH_DEFINE( "\\{button l2}", GLYPH_NORMAL, 16, 99)
GLYPH_DEFINE("\\{button r2}", GLYPH_NORMAL, 16, 100)
GLYPH_DEFINE("\\{icon music}", GLYPH_NORMAL, 14, 101)
GLYPH_DEFINE("\\{icon sound}", GLYPH_NORMAL, 12, 102)
GLYPH_DEFINE("\\{ammo shotgun}", GLYPH_NORMAL, 8, 103)
GLYPH_DEFINE("\\{ammo magnums}", GLYPH_NORMAL, 8, 104)
GLYPH_DEFINE("\\{ammo uzis}", GLYPH_NORMAL, 8, 105)
GLYPH_DEFINE("\\{button down}", GLYPH_NORMAL, 8, 106)
GLYPH_DEFINE("\\{button up}", GLYPH_NORMAL, 8, 107)
GLYPH_DEFINE("\\{button left}", GLYPH_NORMAL, 8, 108)
GLYPH_DEFINE("\\{button right}", GLYPH_NORMAL, 8, 109)
GLYPH_DEFINE("\\{arrow up}", GLYPH_NORMAL, 12, 80)
GLYPH_DEFINE("\\{arrow down}", GLYPH_NORMAL, 12, 81)
GLYPH_DEFINE("\\{small digit 0}", GLYPH_NORMAL, 7, 82)
GLYPH_DEFINE("\\{small digit 1}", GLYPH_NORMAL, 5, 83)
GLYPH_DEFINE("\\{small digit 2}", GLYPH_NORMAL, 7, 84)
GLYPH_DEFINE("\\{small digit 3}", GLYPH_NORMAL, 7, 85)
GLYPH_DEFINE("\\{small digit 4}", GLYPH_NORMAL, 7, 86)
GLYPH_DEFINE("\\{small digit 5}", GLYPH_NORMAL, 7, 87)
GLYPH_DEFINE("\\{small digit 6}", GLYPH_NORMAL, 7, 88)
GLYPH_DEFINE("\\{small digit 7}", GLYPH_NORMAL, 7, 89)
GLYPH_DEFINE("\\{small digit 8}", GLYPH_NORMAL, 7, 90)
GLYPH_DEFINE("\\{small digit 9}", GLYPH_NORMAL, 7, 91)
GLYPH_DEFINE("\\{button empty}", GLYPH_NORMAL, 16, 92)
GLYPH_DEFINE("\\{button triangle}", GLYPH_NORMAL, 16, 93)
GLYPH_DEFINE("\\{button circle}", GLYPH_NORMAL, 16, 94)
GLYPH_DEFINE("\\{button x}", GLYPH_NORMAL, 16, 95)
GLYPH_DEFINE("\\{button square}", GLYPH_NORMAL, 16, 96)
GLYPH_DEFINE("\\{button l1}", GLYPH_NORMAL, 16, 97)
GLYPH_DEFINE("\\{button r1}", GLYPH_NORMAL, 16, 98)
GLYPH_DEFINE("\\{button l2}", GLYPH_NORMAL, 16, 99)
GLYPH_DEFINE("\\{button r2}", GLYPH_NORMAL, 16, 100)
GLYPH_DEFINE("\\{icon music}", GLYPH_NORMAL, 14, 101)
GLYPH_DEFINE("\\{icon sound}", GLYPH_NORMAL, 12, 102)
GLYPH_DEFINE("\\{ammo shotgun}", GLYPH_NORMAL, 8, 103)
GLYPH_DEFINE("\\{ammo magnums}", GLYPH_NORMAL, 8, 104)
GLYPH_DEFINE("\\{ammo uzis}", GLYPH_NORMAL, 8, 105)
GLYPH_DEFINE("\\{button down}", GLYPH_NORMAL, 8, 106)
GLYPH_DEFINE("\\{button up}", GLYPH_NORMAL, 8, 107)
GLYPH_DEFINE("\\{button left}", GLYPH_NORMAL, 8, 108)
GLYPH_DEFINE("\\{button right}", GLYPH_NORMAL, 8, 109)

GLYPH_DEFINE("\\{secret 1}", GLYPH_SECRET, 16, 0)
GLYPH_DEFINE("\\{secret 2}", GLYPH_SECRET, 16, 1)
Expand Down
18 changes: 14 additions & 4 deletions src/tr2/game/text.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,20 @@ void Text_DrawText(TEXTSTRING *const text)
}

if ((*glyph_ptr)->role == GLYPH_SECRET) {
Output_DrawPickup(
x + 10, y, 7144,
Object_Get(O_SECRET_1 + (*glyph_ptr)->mesh_idx)->mesh_idx,
4096);
const int16_t sprite_idx =
Object_Get(O_SECRET_1 + (*glyph_ptr)->mesh_idx)->mesh_idx;
const SPRITE_TEXTURE *const sprite =
Output_GetSpriteTexture(sprite_idx);
const float sprite_scale_h =
text->scale.h / (sprite->x1 - sprite->x0);
const float sprite_scale_v =
text->scale.v / (sprite->y1 - sprite->y0);
const float sprite_scale = MIN(sprite_scale_h, sprite_scale_v);
Output_DrawScreenSprite2D(
x + M_Scale(10), y, z,
M_Scale((*glyph_ptr)->width * sprite_scale),
M_Scale((*glyph_ptr)->width * sprite_scale), sprite_idx, 4096,
0);
x += (*glyph_ptr)->width * scale_h / TEXT_BASE_SCALE;
glyph_ptr++;
continue;
Expand Down

0 comments on commit 2ecb4c1

Please sign in to comment.