mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-20 05:23:04 +01:00
Remove remaining external uses of g1element
This commit is contained in:
@@ -228,16 +228,17 @@ static void window_install_track_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
sint32 colour = ColourMapA[w->colours[0]].darkest;
|
||||
gfx_fill_rect(dpi, x, y, x + 369, y + 216, colour);
|
||||
|
||||
rct_g1_element * substituteElement = &g1Elements[SPR_TEMP];
|
||||
rct_g1_element tmpElement = * substituteElement;
|
||||
substituteElement->offset = _trackDesignPreviewPixels + (_currentTrackPieceDirection * TRACK_PREVIEW_IMAGE_SIZE);
|
||||
substituteElement->width = 370;
|
||||
substituteElement->height = 217;
|
||||
substituteElement->x_offset = 0;
|
||||
substituteElement->y_offset = 0;
|
||||
substituteElement->flags = G1_FLAG_BMP;
|
||||
auto g1backup = gfx_get_g1_element(SPR_TEMP);
|
||||
|
||||
rct_g1_element g1temp = { 0 };
|
||||
g1temp.offset = _trackDesignPreviewPixels + (_currentTrackPieceDirection * TRACK_PREVIEW_IMAGE_SIZE);
|
||||
g1temp.width = 370;
|
||||
g1temp.height = 217;
|
||||
g1temp.flags = G1_FLAG_BMP;
|
||||
|
||||
gfx_set_g1_element(SPR_TEMP, &g1temp);
|
||||
gfx_draw_sprite(dpi, 0, x, y, 0);
|
||||
*substituteElement = tmpElement;
|
||||
gfx_set_g1_element(SPR_TEMP, g1backup);
|
||||
|
||||
x = w->x + (widget->left + widget->right) / 2;
|
||||
y = w->y + widget->bottom - 12;
|
||||
|
||||
@@ -882,19 +882,18 @@ static void window_map_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, sint32
|
||||
{
|
||||
gfx_clear(dpi, PALETTE_INDEX_10);
|
||||
|
||||
rct_g1_element * g1 = &g1Elements[SPR_TEMP];
|
||||
rct_g1_element g1backup = *g1;
|
||||
|
||||
g1->offset = (uint8 *) _mapImageData;
|
||||
g1->width = MAP_WINDOW_MAP_SIZE;
|
||||
g1->height = MAP_WINDOW_MAP_SIZE;
|
||||
g1->x_offset = -8;
|
||||
g1->y_offset = -8;
|
||||
g1->flags = 0;
|
||||
auto g1backup = gfx_get_g1_element(SPR_TEMP);
|
||||
|
||||
rct_g1_element g1temp = { 0 };
|
||||
g1temp.offset = (uint8 *)_mapImageData;
|
||||
g1temp.width = MAP_WINDOW_MAP_SIZE;
|
||||
g1temp.height = MAP_WINDOW_MAP_SIZE;
|
||||
g1temp.x_offset = -8;
|
||||
g1temp.y_offset = -8;
|
||||
|
||||
gfx_set_g1_element(SPR_TEMP, &g1temp);
|
||||
gfx_draw_sprite(dpi, SPR_TEMP, 0, 0, 0);
|
||||
|
||||
*g1 = g1backup;
|
||||
gfx_set_g1_element(SPR_TEMP, g1backup);
|
||||
|
||||
if (w->selected_tab == PAGE_PEEPS)
|
||||
{
|
||||
|
||||
@@ -467,16 +467,14 @@ static void window_track_place_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
// Draw mini tile preview
|
||||
rct_drawpixelinfo clippedDpi;
|
||||
if (clip_drawpixelinfo(&clippedDpi, dpi, w->x + 4, w->y + 18, 168, 78)) {
|
||||
rct_g1_element *substituteElement = &g1Elements[SPR_TEMP];
|
||||
rct_g1_element tmpElement = *substituteElement;
|
||||
substituteElement->offset = _window_track_place_mini_preview;
|
||||
substituteElement->width = TRACK_MINI_PREVIEW_WIDTH;
|
||||
substituteElement->height = TRACK_MINI_PREVIEW_HEIGHT;
|
||||
substituteElement->x_offset = 0;
|
||||
substituteElement->y_offset = 0;
|
||||
substituteElement->flags = 0;
|
||||
auto g1backup = gfx_get_g1_element(SPR_TEMP);
|
||||
rct_g1_element g1temp = { 0 };
|
||||
g1temp.offset = _window_track_place_mini_preview;
|
||||
g1temp.width = TRACK_MINI_PREVIEW_WIDTH;
|
||||
g1temp.height = TRACK_MINI_PREVIEW_HEIGHT;
|
||||
gfx_set_g1_element(SPR_TEMP, &g1temp);
|
||||
gfx_draw_sprite(&clippedDpi, SPRITE_ID_PALETTE_COLOUR_1(NOT_TRANSLUCENT(w->colours[0])), 0, 0, 0);
|
||||
*substituteElement = tmpElement;
|
||||
gfx_set_g1_element(SPR_TEMP, g1backup);
|
||||
}
|
||||
|
||||
// Price
|
||||
|
||||
@@ -422,16 +422,17 @@ static void window_track_list_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
return;
|
||||
}
|
||||
|
||||
rct_g1_element *substituteElement = &g1Elements[SPR_TEMP];
|
||||
rct_g1_element tmpElement = *substituteElement;
|
||||
substituteElement->offset = _trackDesignPreviewPixels + (_currentTrackPieceDirection * TRACK_PREVIEW_IMAGE_SIZE);
|
||||
substituteElement->width = 370;
|
||||
substituteElement->height = 217;
|
||||
substituteElement->x_offset = 0;
|
||||
substituteElement->y_offset = 0;
|
||||
substituteElement->flags = G1_FLAG_BMP;
|
||||
auto g1backup = gfx_get_g1_element(SPR_TEMP);
|
||||
|
||||
rct_g1_element g1temp = { 0 };
|
||||
g1temp.offset = _trackDesignPreviewPixels + (_currentTrackPieceDirection * TRACK_PREVIEW_IMAGE_SIZE);
|
||||
g1temp.width = 370;
|
||||
g1temp.height = 217;
|
||||
g1temp.flags = G1_FLAG_BMP;
|
||||
|
||||
gfx_set_g1_element(SPR_TEMP, &g1temp);
|
||||
gfx_draw_sprite(dpi, 0, x, y, 0);
|
||||
*substituteElement = tmpElement;
|
||||
gfx_set_g1_element(SPR_TEMP, g1backup);
|
||||
|
||||
x = w->x + (widget->left + widget->right) / 2;
|
||||
y = w->y + widget->bottom - 12;
|
||||
|
||||
@@ -220,7 +220,7 @@ extern "C"
|
||||
uint32 imageId = baseImageId;
|
||||
for (uint32 i = 0; i < count; i++)
|
||||
{
|
||||
g1Elements[imageId] = images[i];
|
||||
gfx_set_g1_element(imageId, &images[i]);
|
||||
drawing_engine_invalidate_image(imageId);
|
||||
imageId++;
|
||||
}
|
||||
@@ -237,7 +237,8 @@ extern "C"
|
||||
for (uint32 i = 0; i < count; i++)
|
||||
{
|
||||
uint32 imageId = baseImageId + i;
|
||||
g1Elements[imageId] = { 0 };
|
||||
rct_g1_element g1 = { 0 };
|
||||
gfx_set_g1_element(imageId, &g1);
|
||||
drawing_engine_invalidate_image(imageId);
|
||||
}
|
||||
|
||||
|
||||
@@ -162,10 +162,10 @@ extern "C"
|
||||
static bool _csgLoaded = false;
|
||||
|
||||
#ifdef NO_RCT2
|
||||
size_t g1ElementsCount = 0;
|
||||
rct_g1_element * g1Elements = nullptr;
|
||||
static size_t g1ElementsCount = 0;
|
||||
static rct_g1_element * g1Elements = nullptr;
|
||||
#else
|
||||
rct_g1_element * g1Elements = RCT2_ADDRESS(RCT2_ADDRESS_G1_ELEMENTS, rct_g1_element);
|
||||
static rct_g1_element * g1Elements = RCT2_ADDRESS(RCT2_ADDRESS_G1_ELEMENTS, rct_g1_element);
|
||||
#endif
|
||||
bool gTinyFontAntiAliased = false;
|
||||
|
||||
@@ -791,6 +791,23 @@ extern "C"
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void gfx_set_g1_element(sint32 imageId, const rct_g1_element * g1)
|
||||
{
|
||||
openrct2_assert(!gOpenRCT2NoGraphics, "gfx_set_g1_element called on headless instance");
|
||||
#ifdef DEBUG
|
||||
openrct2_assert(imageId >= 0 && imageId < SPR_G2_BEGIN, "gfx_set_g1_element called with unexpected image id");
|
||||
openrct2_assert(g1 != nullptr, "g1 was nullptr");
|
||||
#endif
|
||||
|
||||
if (imageId >= 0 || imageId < SPR_G2_BEGIN)
|
||||
{
|
||||
if (imageId < (sint32)g1ElementsCount)
|
||||
{
|
||||
g1Elements[imageId] = *g1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool is_csg_loaded()
|
||||
{
|
||||
return _csgLoaded;
|
||||
|
||||
@@ -280,7 +280,6 @@ extern uint32 gPickupPeepImage;
|
||||
extern sint32 gPickupPeepX;
|
||||
extern sint32 gPickupPeepY;
|
||||
|
||||
extern rct_g1_element *g1Elements;
|
||||
extern bool gTinyFontAntiAliased;
|
||||
|
||||
extern rct_drawpixelinfo gScreenDPI;
|
||||
@@ -326,6 +325,7 @@ void gfx_unload_g1();
|
||||
void gfx_unload_g2();
|
||||
void gfx_unload_csg();
|
||||
const rct_g1_element * gfx_get_g1_element(sint32 image_id);
|
||||
void gfx_set_g1_element(sint32 imageId, const rct_g1_element * g1);
|
||||
bool is_csg_loaded();
|
||||
uint32 gfx_object_allocate_images(const rct_g1_element * images, uint32 count);
|
||||
void gfx_object_free_images(uint32 baseImageId, uint32 count);
|
||||
|
||||
@@ -79,18 +79,21 @@ void scrolling_text_initialise_bitmaps()
|
||||
|
||||
for (sint32 i = 0; i < MAX_SCROLLING_TEXT_ENTRIES; i++)
|
||||
{
|
||||
rct_g1_element * g1 = &g1Elements[SPR_SCROLLING_TEXT_START + i];
|
||||
if (g1 != NULL)
|
||||
sint32 imageId = SPR_SCROLLING_TEXT_START + i;
|
||||
const rct_g1_element * g1original = gfx_get_g1_element(imageId);
|
||||
if (g1original != NULL)
|
||||
{
|
||||
g1->offset = _drawScrollTextList[i].bitmap;
|
||||
g1->width = 64;
|
||||
g1->height = 40;
|
||||
g1->offset[0] = 0xFF;
|
||||
g1->offset[1] = 0xFF;
|
||||
g1->offset[14] = 0;
|
||||
g1->offset[15] = 0;
|
||||
g1->offset[16] = 0;
|
||||
g1->offset[17] = 0;
|
||||
rct_g1_element g1 = *g1original;
|
||||
g1.offset = _drawScrollTextList[i].bitmap;
|
||||
g1.width = 64;
|
||||
g1.height = 40;
|
||||
g1.offset[0] = 0xFF;
|
||||
g1.offset[1] = 0xFF;
|
||||
g1.offset[14] = 0;
|
||||
g1.offset[15] = 0;
|
||||
g1.offset[16] = 0;
|
||||
g1.offset[17] = 0;
|
||||
gfx_set_g1_element(imageId, &g1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -674,11 +674,14 @@ static const utf8 *ttf_process_format_code(rct_drawpixelinfo *dpi, const utf8 *t
|
||||
case FORMAT_INLINE_SPRITE:
|
||||
{
|
||||
uint32 imageId = *((uint32*)(nextCh));
|
||||
rct_g1_element *g1Element = &g1Elements[imageId & 0x7FFFF];
|
||||
if (!(info->flags & TEXT_DRAW_FLAG_NO_DRAW)) {
|
||||
gfx_draw_sprite(dpi, imageId, info->x, info->y, 0);
|
||||
const rct_g1_element * g1 = gfx_get_g1_element(imageId & 0x7FFFF);
|
||||
if (g1 != NULL)
|
||||
{
|
||||
if (!(info->flags & TEXT_DRAW_FLAG_NO_DRAW)) {
|
||||
gfx_draw_sprite(dpi, imageId, info->x, info->y, 0);
|
||||
}
|
||||
info->x += g1->width;
|
||||
}
|
||||
info->x += g1Element->width;
|
||||
nextCh += 4;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user