Integrate stairway1 and hallwayb1-3 into game and fix missing player start point

master
immibis 2025-02-19 19:15:44 +01:00
parent 5a6b51be77
commit 4b565aabb5
2 changed files with 62 additions and 2 deletions

View File

@ -14,7 +14,8 @@ extern const char _binary_sprite_item_pager_raw_start[];
extern const char _binary_sprite_stickman_raw_start[]; extern const char _binary_sprite_stickman_raw_start[];
extern const struct level_predef_data predef_basement, predef_lobby, predef_managers_office, predef_cloakroom, predef_hallway1, predef_hallway2, predef_hallway3; extern const struct level_predef_data predef_basement, predef_lobby, predef_managers_office, predef_cloakroom, predef_hallway1, predef_hallway2, predef_hallway3,
predef_stairway1, predef_hallwayb1, predef_hallwayb2, predef_hallwayb3;
static void create_player(scene *me, int x, int y) { static void create_player(scene *me, int x, int y) {
const int WIDTH=51, HEIGHT=111; const int WIDTH=51, HEIGHT=111;
@ -88,6 +89,22 @@ void scene_setup(scene *me, int scene, int fromscene) {
scene_load_predef(me, &predef_hallway3); scene_load_predef(me, &predef_hallway3);
create_player_startpt(me, fromscene); create_player_startpt(me, fromscene);
break; break;
case SCENE_STAIRWAY1:
scene_load_predef(me, &predef_stairway1);
create_player_startpt(me, fromscene);
break;
case SCENE_HALLWAY_B1:
scene_load_predef(me, &predef_hallwayb1);
create_player_startpt(me, fromscene);
break;
case SCENE_HALLWAY_B2:
scene_load_predef(me, &predef_hallwayb2);
create_player_startpt(me, fromscene);
break;
case SCENE_HALLWAY_B3:
scene_load_predef(me, &predef_hallwayb3);
create_player_startpt(me, fromscene);
break;
} }
} }
@ -253,6 +270,9 @@ void onclick(int curscene, struct object *obj) {
case OBJID_NEXT_ROOM: case OBJID_NEXT_ROOM:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY2); start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY2);
return; return;
case OBJID_GO_LEFT:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_STAIRWAY1);
return;
} }
break; break;
case SCENE_HALLWAY2: case SCENE_HALLWAY2:
@ -272,6 +292,43 @@ void onclick(int curscene, struct object *obj) {
return; return;
} }
break; break;
case SCENE_STAIRWAY1:
switch(obj->id) {
case OBJID_STAIRWAY1_TOP:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY_B2);
return;
case OBJID_STAIRWAY1_BOTTOM:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY1);
return;
}
break;
case SCENE_HALLWAY_B1:
switch(obj->id) {
case OBJID_GO_RIGHT:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY_B2);
return;
}
break;
case SCENE_HALLWAY_B2:
switch(obj->id) {
case OBJID_GO_LEFT:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY_B1);
return;
case OBJID_GO_RIGHT:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY_B3);
return;
case OBJID_LEAVE_ROOM:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_STAIRWAY1);
return;
}
break;
case SCENE_HALLWAY_B3:
switch(obj->id) {
case OBJID_GO_LEFT:
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY_B2);
return;
}
break;
} }
} }

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="34" height="25" tilewidth="32" tileheight="32" infinite="0" nextlayerid="6" nextobjectid="16"> <map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="34" height="25" tilewidth="32" tileheight="32" infinite="0" nextlayerid="6" nextobjectid="17">
<imagelayer id="2" name="Image Layer 1"> <imagelayer id="2" name="Image Layer 1">
<image source="../build/default/hallway1.png" width="1066" height="800"/> <image source="../build/default/hallway1.png" width="1066" height="800"/>
</imagelayer> </imagelayer>
@ -46,5 +46,8 @@
<object id="13" name="OBJID_PLAYER_START+SCENE_HALLWAY2" x="552" y="80"> <object id="13" name="OBJID_PLAYER_START+SCENE_HALLWAY2" x="552" y="80">
<point/> <point/>
</object> </object>
<object id="16" name="OBJID_PLAYER_START+SCENE_STAIRWAY1" x="467" y="257">
<point/>
</object>
</objectgroup> </objectgroup>
</map> </map>