(WIP) First initial groundwork implementation of OpenGL backend (#183)

* Fix nullpointer crash in stage intro, when starting the Extra Boss stage

* Add first NOT-WORKING (WIP) pass on OpenGL renderer in win32

* Address #ifdef comment

* Fix capitalization
This commit is contained in:
JaceCear authored and GitHub committed 2025-01-12 00:44:30 +01:00
1 parent 5ff1ba20a9
commit 2a0cb85533
15 files changed
+624 -380

No files matched your search

-308
View File
@@ -1,308 +0,0 @@
#ifndef GUARD_TILEMAPS
#define GUARD_TILEMAPS
// NOTE: * 0-92 are MapHeaders
// * 93 == NULL
#define TM_LEVEL_METATILES_0(level) (((level)*3) + 0)
#define TM_LEVEL_METATILES_1(level) (((level)*3) + 1)
#define TM_LEVEL_BG(level) (((level)*3) + 2)
#define TM_SA1_TITLE_LOGO 94
#define TM_SA1_TITLE_BG 95
#define TM_INTRO_PRESENTED_BY_SEGA 96
#define TM_INTRO_CREATED_BY_SONIC_TEAM 97
#define TM_CHAR_SELECT_BACKGROUND 98
#define TM_CHAR_SELECT_WHEEL 99
#define TM_STAGE_SELECT_BG_SONIC 100
#define TM_STAGE_SELECT_BG_CREAM 101
#define TM_STAGE_SELECT_BG_TAILS 102
#define TM_STAGE_SELECT_BG_KNUCKLES 103
#define TM_STAGE_SELECT_BG_AMY 104
#define TM_STAGE_SELECT_MAP 105
#define TM_EGG_SAUCER_WHEEL_COPY 106
#define TM_UNKNOWN_OPTIONS_BG 107
#define TM_108 108
#define TM_SA2_TITLE_LOGO_JP 109
#define TM_TA_AND_MP_WHITE_BG 110
#define TM_MP_ORANGE_BG 111
#define TM_TA_ORANGE_BG 112
#define TM_STAGE_1_BG_0_COPY 113
#define TM_MP_WAIT_CONNECTION 114
#define TM_MP_MESSAGE_BOX_UNKNOWN 115
#define TM_MP_CHARACTERS_SELECTED_JP 116
#define TM_MP_CHARACTERS_SELECTED_EN 117
#define TM_MP_CHARACTERS_SELECTED_DE 118
#define TM_MP_CHARACTERS_SELECTED_FR 119
#define TM_MP_CHARACTERS_SELECTED_ES 120
#define TM_MP_CHARACTERS_SELECTED_IT 121
#define TM_MP_UNKNOWN_ORANGE_ZIGZAG 122
#define TM_MP_UNKNOWN_GREEN 123
#define TM_UNKNOWN_MESSAGE_BOX_WHITE 124
#define TM_UNKNOWN_MESSAGE_BOX_WHITE_SMALL 125
#define TM_MP_VS_BACKGROUND_TEXT 126
#define TM_MP_CHEESE_PLEASE_WAIT_JP 127
#define TM_MP_CHEESE_PLEASE_WAIT_EN 128
#define TM_MP_CHEESE_PLEASE_WAIT_DE 129
#define TM_MP_CHEESE_PLEASE_WAIT_FR 130
#define TM_MP_CHEESE_PLEASE_WAIT_ES 131
#define TM_MP_CHEESE_PLEASE_WAIT_IT 132
#define TM_OPTIONS_BG0 133
#define TM_OPTIONS_LANGUAGE_SELECT 134
#define TM_OPTIONS_ENTER_NAME 135
#define TM_OPTIONS_ENTER_NAME_CHARACTERS 136
#define TM_OPTIONS_TIME_RECORD_BG0 137
#define TM_OPTIONS_TIME_RECORD_BG1 138
#define TM_139 139
#define TM_MP_CHARACTER_SELECTED_SONIC_BG 140
#define TM_MP_CHARACTER_SELECTED_SONIC 141
#define TM_MP_CHARACTER_SELECTED_TAILS_BG 142
#define TM_MP_CHARACTER_SELECTED_TAILS 143
#define TM_MP_CHARACTER_SELECTED_KNUCKLES_BG 144
#define TM_MP_CHARACTER_SELECTED_KNUCKLES 145
#define TM_MP_CHARACTER_SELECTED_AMY_BG 146
#define TM_MP_CHARACTER_SELECTED_AMY 147
#define TM_MP_CHARACTER_SELECTED_CREAM_BG 148
#define TM_MP_CHARACTER_SELECTED_CREAM 149
#define TM_150_MESSAGE_BOX_BLACK 150
#define TM_151_GREEN_CARET 151
#define TM_OPTIONS_VS_RECORD_BG1 152
#define TM_SPECIAL_STAGE_1 153
#define TM_SPECIAL_STAGE_1_BG 154
#define TM_SPECIAL_STAGE_2 155
#define TM_SPECIAL_STAGE_2_BG 156
#define TM_SPECIAL_STAGE_3 157
#define TM_SPECIAL_STAGE_3_BG 158
#define TM_SPECIAL_STAGE_4 159
#define TM_SPECIAL_STAGE_4_BG 160
#define TM_SPECIAL_STAGE_5 161
#define TM_SPECIAL_STAGE_5_BG 162
#define TM_SPECIAL_STAGE_6 163
#define TM_SPECIAL_STAGE_6_BG 164
#define TM_SPECIAL_STAGE_7 165
#define TM_SPECIAL_STAGE_7_BG 166
#define TM_TECHNO_BASE_BG_PURPLE_GRID 167
#define TM_TECHNO_BASE_BG_CIRCUIT_MASK 168
#define TM_SOUND_TEST_BG 169
#define TM_CUTSCENE_POST_EXTRA_BOSS_BG 170
#define TM_CUTSCENE_FINAL_ENDING_FALL_BG 171
#define TM_CUTSCENE_FINAL_ENDING_FALL_CLOUDS 172
#define TM_CUTSCENE_FINAL_ENDING_FALL_BG_DARK 173
#define TM_CUTSCENE_FINAL_ENDING_FALL_BG_DARK_2 174
// JP has an image of Eggman, other languages are only the textbox
#define TM_COLLECT_ALL_CHAOS_EMERALDS_JP 175
#define TM_COLLECT_ALL_CHAOS_EMERALDS_EN 176
#define TM_COLLECT_ALL_CHAOS_EMERALDS_FR 177
#define TM_COLLECT_ALL_CHAOS_EMERALDS_DE 178
#define TM_COLLECT_ALL_CHAOS_EMERALDS_IT 179
#define TM_COLLECT_ALL_CHAOS_EMERALDS_ES 180
// (Also used as BG for SoundTest unlock)
// JP fills the entire screen, other languages are only the textbox
#define TM_UNLOCKED_TINY_CHAO_GARDEN_JP 181
#define TM_UNLOCKED_TINY_CHAO_GARDEN_EN 182
#define TM_UNLOCKED_TINY_CHAO_GARDEN_FR 183
#define TM_UNLOCKED_TINY_CHAO_GARDEN_DE 184
#define TM_UNLOCKED_TINY_CHAO_GARDEN_IT 185
#define TM_UNLOCKED_TINY_CHAO_GARDEN_ES 186
// Uses TM_UNLOCKED_TINY_CHAO_GARDEN_JP as BG
#define TM_UNLOCKED_SOUND_TEST_JP 187
#define TM_UNLOCKED_SOUND_TEST_EN 188
#define TM_UNLOCKED_SOUND_TEST_FR 189
#define TM_UNLOCKED_SOUND_TEST_DE 190
#define TM_UNLOCKED_SOUND_TEST_IT 191
#define TM_UNLOCKED_SOUND_TEST_ES 192
// Uses TM_UNLOCKED_TINY_CHAO_GARDEN_JP as BG
#define TM_UNLOCKED_BOSSES_TIME_ATTACK_JP 193
#define TM_UNLOCKED_BOSSES_TIME_ATTACK_EN 194
#define TM_UNLOCKED_BOSSES_TIME_ATTACK_FR 195
#define TM_UNLOCKED_BOSSES_TIME_ATTACK_DE 196
#define TM_UNLOCKED_BOSSES_TIME_ATTACK_IT 197
#define TM_UNLOCKED_BOSSES_TIME_ATTACK_ES 198
#define TM_UNLOCKED_AMY_JP 199
#define TM_UNLOCKED_AMY_EN 200
#define TM_UNLOCKED_AMY_FR 201
#define TM_UNLOCKED_AMY_DE 202
#define TM_UNLOCKED_AMY_IT 203
#define TM_UNLOCKED_AMY_ES 204
#define TM_CUTSCENE_FINAL_ENDING_LAND_FG 205
#define TM_CUTSCENE_FINAL_ENDING_LAND_BG 206
#define TM_CUTSCENE_FINAL_ENDING_LAND_FLOWER_FIELD 207
#define TM_CUTSCENE_FINAL_ENDING_LAND_BG_ALT 208
#define TM_UNK_SPACE_BG 209
#define TM_STORYFRAME_SONIC_CATCHES_VANILLA 210
#define TM_STORYFRAME_SONIC_FINDS_FRIENDS 211
#define TM_STORYFRAME_SONIC_PATS_TAILS 212
#define TM_STORYFRAME_CREAM_HUGS_VANILLA 213
#define TM_STORYFRAME_CREAM_TAILS_VANILLA_LOOK_AROUND 214
#define TM_STORYFRAME_CREAM_CHEESE_VANILLA_HAPPY 215
#define TM_STORYFRAME_SONIC_LEAVES_0 216
#define TM_STORYFRAME_SONIC_LEAVES_1 217
#define TM_STORYFRAME_SONIC_LEAVES_2 218
#define TM_STORYFRAME_SONIC_LEAVES_3 219
#define TM_STORYFRAME_SONIC_LEAVES_4 220
#define TM_STORYFRAME_SONIC_LEAVES_5 221
#define TM_STORYFRAME_SONIC_LEAVES_6 222
#define TM_STORYFRAME_SONIC_LEAVES_7 223
#define TM_STORYFRAME_SONIC_LEAVES_8 224
#define TM_STORYFRAME_SONIC_LEAVES_9 225
#define TM_STORYFRAME_SONIC_LEAVES_10 226
#define TM_STORYFRAME_CREAM_UNLOCK_0_SEPIA 227
#define TM_STORYFRAME_CREAM_UNLOCK_1_SEPIA 228
#define TM_STORYFRAME_TAILS_UNLOCK_1_SEPIA 229
#define TM_STORYFRAME_KNUCKLES_UNLOCK_1_SEPIA 230
#define TM_STORYFRAME_CREAM_UNLOCK_3_SEPIA 231
#define TM_CREDITS_SA2_LOGO_JP 232
#define TM_CREDITS_SA2_LOGO_EN 233
#define TM_CREDITS_0 234
#define TM_CREDITS_1 235
#define TM_CREDITS_2 236
#define TM_CREDITS_3 237
#define TM_CREDITS_4 238
#define TM_CREDITS_5 239
#define TM_CREDITS_6 240
#define TM_CREDITS_7 241
#define TM_CREDITS_8 242
#define TM_CREDITS_9 243
#define TM_CREDITS_10 244
#define TM_CREDITS_11 245
#define TM_CREDITS_12 246
#define TM_CREDITS_13 247
#define TM_CREDITS_14 248
#define TM_CREDITS_15 249
#define TM_CREDITS_16 250
#define TM_CREDITS_17 251
#define TM_CREDITS_18 252
#define TM_CREDITS_19 253
#define TM_CREDITS_20 254
#define TM_CREDITS_21 255
#define TM_CREDITS_22 256
#define TM_CREDITS_23 257
#define TM_CREDITS_24 258
#define TM_CREDITS_COPYRIGHT 259
#define TM_CREDITS_PRESENTED_BY_SEGA 260
#define TM_TITLE_SCREEN_BG 261
#define TM_INTRO_WATER 262
#define TM_LENS_FLARE_BG 263
#define TM_SA2_LOGO_JP 264
#define TM_SA2_LOGO_EN 265
#define TM_STORYFRAME_CREAM_UNLOCK_0 266
#define TM_STORYFRAME_CREAM_UNLOCK_1 267
#define TM_STORYFRAME_CREAM_UNLOCK_2 268
#define TM_STORYFRAME_CREAM_UNLOCK_3 269
#define TM_STORYFRAME_CREAM_UNLOCK_0_DLG_JP 270
#define TM_STORYFRAME_CREAM_UNLOCK_1_DLG_JP 271
#define TM_STORYFRAME_CREAM_UNLOCK_2_DLG_JP 272
#define TM_STORYFRAME_CREAM_UNLOCK_3_DLG_JP 273
#define TM_STORYFRAME_CREAM_UNLOCKED_JP 274
#define TM_STORYFRAME_CREAM_UNLOCK_0_DLG_EN 275
#define TM_STORYFRAME_CREAM_UNLOCK_1_DLG_EN 276
#define TM_STORYFRAME_CREAM_UNLOCK_2_DLG_EN 277
#define TM_STORYFRAME_CREAM_UNLOCK_3_DLG_EN 278
#define TM_STORYFRAME_CREAM_UNLOCKED_EN 279
#define TM_STORYFRAME_CREAM_UNLOCK_0_DLG_FR 280
#define TM_STORYFRAME_CREAM_UNLOCK_1_DLG_FR 281
#define TM_STORYFRAME_CREAM_UNLOCK_2_DLG_FR 282
#define TM_STORYFRAME_CREAM_UNLOCK_3_DLG_FR 283
#define TM_STORYFRAME_CREAM_UNLOCKED_FR 284
#define TM_STORYFRAME_CREAM_UNLOCK_0_DLG_DE 285
#define TM_STORYFRAME_CREAM_UNLOCK_1_DLG_DE 286
#define TM_STORYFRAME_CREAM_UNLOCK_2_DLG_DE 287
#define TM_STORYFRAME_CREAM_UNLOCK_3_DLG_DE 288
#define TM_STORYFRAME_CREAM_UNLOCKED_DE 289
#define TM_STORYFRAME_CREAM_UNLOCK_0_DLG_IT 290
#define TM_STORYFRAME_CREAM_UNLOCK_1_DLG_IT 291
#define TM_STORYFRAME_CREAM_UNLOCK_2_DLG_IT 292
#define TM_STORYFRAME_CREAM_UNLOCK_3_DLG_IT 293
#define TM_STORYFRAME_CREAM_UNLOCKED_IT 294
#define TM_STORYFRAME_CREAM_UNLOCK_0_DLG_ES 295
#define TM_STORYFRAME_CREAM_UNLOCK_1_DLG_ES 296
#define TM_STORYFRAME_CREAM_UNLOCK_2_DLG_ES 297
#define TM_STORYFRAME_CREAM_UNLOCK_3_DLG_ES 298
#define TM_STORYFRAME_CREAM_UNLOCKED_ES 299
#define TM_STORYFRAME_KNUCKLES_UNLOCK_0 300
#define TM_STORYFRAME_KNUCKLES_UNLOCK_1 301
#define TM_STORYFRAME_KNUCKLES_UNLOCK_2 302
#define TM_STORYFRAME_KNUCKLES_UNLOCK_3 303
#define TM_STORYFRAME_KNUCKLES_UNLOCK_0_DLG_JP 304
#define TM_STORYFRAME_KNUCKLES_UNLOCK_1_DLG_JP 305
#define TM_STORYFRAME_KNUCKLES_UNLOCK_2_DLG_JP 306
#define TM_STORYFRAME_KNUCKLES_UNLOCK_3_DLG_JP 307
#define TM_STORYFRAME_KNUCKLES_UNLOCKED_JP 308
#define TM_STORYFRAME_KNUCKLES_UNLOCK_0_DLG_EN 309
#define TM_STORYFRAME_KNUCKLES_UNLOCK_1_DLG_EN 310
#define TM_STORYFRAME_KNUCKLES_UNLOCK_2_DLG_EN 311
#define TM_STORYFRAME_KNUCKLES_UNLOCK_3_DLG_EN 312
#define TM_STORYFRAME_KNUCKLES_UNLOCKED_EN 313
#define TM_STORYFRAME_KNUCKLES_UNLOCK_0_DLG_FR 314
#define TM_STORYFRAME_KNUCKLES_UNLOCK_1_DLG_FR 315
#define TM_STORYFRAME_KNUCKLES_UNLOCK_2_DLG_FR 316
#define TM_STORYFRAME_KNUCKLES_UNLOCK_3_DLG_FR 317
#define TM_STORYFRAME_KNUCKLES_UNLOCKED_FR 318
#define TM_STORYFRAME_KNUCKLES_UNLOCK_0_DLG_DE 319
#define TM_STORYFRAME_KNUCKLES_UNLOCK_1_DLG_DE 320
#define TM_STORYFRAME_KNUCKLES_UNLOCK_2_DLG_DE 321
#define TM_STORYFRAME_KNUCKLES_UNLOCK_3_DLG_DE 322
#define TM_STORYFRAME_KNUCKLES_UNLOCKED_DE 323
#define TM_STORYFRAME_KNUCKLES_UNLOCK_0_DLG_IT 324
#define TM_STORYFRAME_KNUCKLES_UNLOCK_1_DLG_IT 325
#define TM_STORYFRAME_KNUCKLES_UNLOCK_2_DLG_IT 326
#define TM_STORYFRAME_KNUCKLES_UNLOCK_3_DLG_IT 327
#define TM_STORYFRAME_KNUCKLES_UNLOCKED_IT 328
#define TM_STORYFRAME_KNUCKLES_UNLOCK_0_DLG_ES 329
#define TM_STORYFRAME_KNUCKLES_UNLOCK_1_DLG_ES 330
#define TM_STORYFRAME_KNUCKLES_UNLOCK_2_DLG_ES 331
#define TM_STORYFRAME_KNUCKLES_UNLOCK_3_DLG_ES 332
#define TM_STORYFRAME_KNUCKLES_UNLOCKED_ES 333
#define TM_STORYFRAME_TAILS_UNLOCK_0 334
#define TM_STORYFRAME_TAILS_UNLOCK_1 335
#define TM_STORYFRAME_TAILS_UNLOCK_2 336
#define TM_STORYFRAME_TAILS_UNLOCK_3 337
#define TM_STORYFRAME_TAILS_UNLOCK_0_DLG_JP 338
#define TM_STORYFRAME_TAILS_UNLOCK_1_DLG_JP 339
#define TM_STORYFRAME_TAILS_UNLOCK_2_DLG_JP 340
#define TM_STORYFRAME_TAILS_UNLOCK_3_DLG_JP 341
#define TM_STORYFRAME_TAILS_UNLOCKED_JP 342
#define TM_STORYFRAME_TAILS_UNLOCK_0_DLG_EN 343
#define TM_STORYFRAME_TAILS_UNLOCK_1_DLG_EN 344
#define TM_STORYFRAME_TAILS_UNLOCK_2_DLG_EN 345
#define TM_STORYFRAME_TAILS_UNLOCK_3_DLG_EN 346
#define TM_STORYFRAME_TAILS_UNLOCKED_EN 347
#define TM_STORYFRAME_TAILS_UNLOCK_0_DLG_FR 348
#define TM_STORYFRAME_TAILS_UNLOCK_1_DLG_FR 349
#define TM_STORYFRAME_TAILS_UNLOCK_2_DLG_FR 350
#define TM_STORYFRAME_TAILS_UNLOCK_3_DLG_FR 351
#define TM_STORYFRAME_TAILS_UNLOCKED_FR 352
#define TM_STORYFRAME_TAILS_UNLOCK_0_DLG_DE 353
#define TM_STORYFRAME_TAILS_UNLOCK_1_DLG_DE 354
#define TM_STORYFRAME_TAILS_UNLOCK_2_DLG_DE 355
#define TM_STORYFRAME_TAILS_UNLOCK_3_DLG_DE 356
#define TM_STORYFRAME_TAILS_UNLOCKED_DE 357
#define TM_STORYFRAME_TAILS_UNLOCK_0_DLG_IT 358
#define TM_STORYFRAME_TAILS_UNLOCK_1_DLG_IT 359
#define TM_STORYFRAME_TAILS_UNLOCK_2_DLG_IT 360
#define TM_STORYFRAME_TAILS_UNLOCK_3_DLG_IT 361
#define TM_STORYFRAME_TAILS_UNLOCKED_IT 362
#define TM_STORYFRAME_TAILS_UNLOCK_0_DLG_ES 363
#define TM_STORYFRAME_TAILS_UNLOCK_1_DLG_ES 364
#define TM_STORYFRAME_TAILS_UNLOCK_2_DLG_ES 365
#define TM_STORYFRAME_TAILS_UNLOCK_3_DLG_ES 366
#define TM_STORYFRAME_TAILS_UNLOCKED_ES 367
#define TM_REGULAR_FINAL_BOSS 368
#define TM_UNKNOWN_STARS 369
#define TM_SKY_CANYON_CLOUDS_FOREGROUND 370
#define TM_371 371
#define TM_EXTRA_BOSS_BACKGROUND 372
#define TM_CHARACTER_SELECT_BACKGROUND_0 373
#define TM_CHARACTER_SELECT_BACKGROUND_1 374
#define TM_EXTRA_BOSS_COCKPIT 375
#define TM_EXTRA_BOSS_BACKGROUND_COPY 376
#define TM_EXTRA_BOSS_BACKGROUND_COPY 376
#define TM_CUTSCENE_VANILLA_KIDNAPPED_FULL_MAP 377
#define TM_CUTSCENE_VANILLA_KIDNAPPED_FULL_MAP_COPY 378
#define TM_CUTSCENE_VANILLA_KIDNAPPED_SUPER_SONIC_ART 379
#define TM_REGULAR_FINAL_BOSS_BUILDING_BG 380
#define TM_COUNT 381
#endif // GUARD_TILEMAPS