In this case we need to render ground as split screen, just like when walking above planet.
But this time the ceiling and floor shares the same color index and not sky and ground.
(A raster split is used to display different colors.)
{ 0x54c2e, STOP_AT_WAIT_INPUT }, /* after pressing 'HELP' key while showing menu line on benson */
{ 0x55446, STOP_AT_WAIT_INPUT }, /* after pressing 'RETURN' while game waits for other key to resume */
{ 0x51620, STOP_AT_WAIT_VBL }, /* after dying, waiting for VBL to fade out palette */
{ 0x54c2e, STOP_AT_WAIT_INPUT }, /* after pressing 'HELP' key while showing menu line on benson */
{ 0x55446, STOP_AT_WAIT_INPUT }, /* after pressing 'RETURN' while game waits for other key to resume */
{ 0x51620, STOP_AT_WAIT_VBL }, /* after dying, waiting for VBL to fade out palette */
- { 0x596BC, STOP_AT_CLEAR_SCREEN1 }, /* clear the screen (here we know the color 8, this is wy we cannot do it earlier) */
- { 0x596F4, STOP_AT_CLEAR_SCREEN1 },
- { 0x59720, STOP_AT_CLEAR_SCREEN1 },
- { 0x598A8, STOP_AT_CLEAR_SCREEN1 },
+ { 0x596BC, STOP_AT_CLEAR_SCREEN1 }, /* clear the screen inside building, no windows (here we know the color 8, this is wy we cannot do it earlier) */
+ { 0x596F4, STOP_AT_CLEAR_SCREEN1 }, /* walking above ground */
+ { 0x59720, STOP_AT_CLEAR_SCREEN1 }, /* unknown */
+ { 0x598A8, STOP_AT_CLEAR_SCREEN1 }, /* space craft on ground */
{ 0x598E6, STOP_AT_CLEAR_SCREEN2 }, /* special case where we use color index 15 when we are flying (no raster split for ground color) */
{ 0x59982, STOP_AT_CLEAR_SCREEN3 }, /* special case where we are in universe and do not have any ground */
{ 0x55F2E, STOP_AT_DRAW_GROUND }, /* the ground is rendered. the color index is captured at CLEAR_SCREEN */
{ 0x598E6, STOP_AT_CLEAR_SCREEN2 }, /* special case where we use color index 15 when we are flying (no raster split for ground color) */
{ 0x59982, STOP_AT_CLEAR_SCREEN3 }, /* special case where we are in universe and do not have any ground */
{ 0x55F2E, STOP_AT_DRAW_GROUND }, /* the ground is rendered. the color index is captured at CLEAR_SCREEN */
- { 0x59710, STOP_AT_DRAW_GROUND }, /* at this point there is ground rendered, because game uses raster split for ground color, but we do render opengl */
+ { 0x596CE, STOP_AT_DRAW_GROUND }, /* at this point there is ground (inside building) rendered, because game uses raster split for ground color, but we do render opengl */
+ { 0x59710, STOP_AT_DRAW_GROUND }, /* at this point there is ground (outside) rendered, because game uses raster split for ground color, but we do render opengl */
{ 0x531EA, STOP_AT_INFO_OBJECT_MOVING }, /* get ID and position of next object */
/* note: there a no fix objects in this game (no taxi/bus/intercity) */
{ 0x534EA, STOP_AT_TAG_IS_OBJECT_1 }, /* indicates that the next tag is an object */
{ 0x531EA, STOP_AT_INFO_OBJECT_MOVING }, /* get ID and position of next object */
/* note: there a no fix objects in this game (no taxi/bus/intercity) */
{ 0x534EA, STOP_AT_TAG_IS_OBJECT_1 }, /* indicates that the next tag is an object */
{ 0x55d94, STOP_AT_WAIT_INPUT }, /* after pressing 'HELP' key while showing menu line on benson */
{ 0x563a6, STOP_AT_WAIT_INPUT }, /* after pressing 'RETURN' while game waits for other key to resume */
{ 0x52946, STOP_AT_WAIT_VBL }, /* after dying, waiting for VBL to fade out palette */
{ 0x55d94, STOP_AT_WAIT_INPUT }, /* after pressing 'HELP' key while showing menu line on benson */
{ 0x563a6, STOP_AT_WAIT_INPUT }, /* after pressing 'RETURN' while game waits for other key to resume */
{ 0x52946, STOP_AT_WAIT_VBL }, /* after dying, waiting for VBL to fade out palette */
- { 0x5A456, STOP_AT_CLEAR_SCREEN1 }, /* clear the screen (here we know the color 8, this is wy we cannot do it earlier) */
- { 0x5A48E, STOP_AT_CLEAR_SCREEN1 },
- { 0x5A4BA, STOP_AT_CLEAR_SCREEN1 },
- { 0x5A672, STOP_AT_CLEAR_SCREEN1 },
+ { 0x5A456, STOP_AT_CLEAR_SCREEN1 }, /* clear the screen inside building, no windows (here we know the color 8, this is wy we cannot do it earlier) */
+ { 0x5A48E, STOP_AT_CLEAR_SCREEN1 }, /* walking above ground */
+ { 0x5A4BA, STOP_AT_CLEAR_SCREEN1 }, /* unknown */
+ { 0x5A672, STOP_AT_CLEAR_SCREEN1 }, /* space craft on ground */
{ 0x5A6B0, STOP_AT_CLEAR_SCREEN2 }, /* special case where we use color index 15 when we are flying (no raster split for ground color) */
{ 0x5A770, STOP_AT_CLEAR_SCREEN3 }, /* special case where we are in universe and do not have any ground */
{ 0x56E00, STOP_AT_DRAW_GROUND }, /* the ground is rendered. the color index is captured at CLEAR_SCREEN */
{ 0x5A6B0, STOP_AT_CLEAR_SCREEN2 }, /* special case where we use color index 15 when we are flying (no raster split for ground color) */
{ 0x5A770, STOP_AT_CLEAR_SCREEN3 }, /* special case where we are in universe and do not have any ground */
{ 0x56E00, STOP_AT_DRAW_GROUND }, /* the ground is rendered. the color index is captured at CLEAR_SCREEN */
- { 0x5A4AA, STOP_AT_DRAW_GROUND }, /* at this point there is ground rendered, because game uses raster split for ground color, but we do render opengl */
+ { 0x5A468, STOP_AT_DRAW_GROUND }, /* at this point there is ground (inside building) rendered, because game uses raster split for ground color, but we do render opengl */
+ { 0x5A4AA, STOP_AT_DRAW_GROUND }, /* at this point there is ground (outside) rendered, because game uses raster split for ground color, but we do render opengl */
{ 0x53FE2, STOP_AT_INFO_OBJECT_MOVING }, /* get ID and position of next object */
{ 0x53E42, STOP_AT_INFO_OBJECT_FIX }, /* next object is FIX (taxi/bus/intercity) */
{ 0x53E8E, STOP_AT_INFO_OBJECT_FIX },
{ 0x53FE2, STOP_AT_INFO_OBJECT_MOVING }, /* get ID and position of next object */
{ 0x53E42, STOP_AT_INFO_OBJECT_FIX }, /* next object is FIX (taxi/bus/intercity) */
{ 0x53E8E, STOP_AT_INFO_OBJECT_FIX },