Added 4 more rooms: hallway1/2/3 and cloakroom
parent
a04abd101a
commit
80a307de5f
4
engine.h
4
engine.h
|
@ -104,6 +104,10 @@ void blit(int x, int y, int width, int height, uint32_t *pixels);
|
|||
#define SCENE_MANAGERS_OFFICE_SAFE 3
|
||||
#define SCENE_BASEMENT 4
|
||||
#define SCENE_TEXTBOX 5
|
||||
#define SCENE_HALLWAY1 6
|
||||
#define SCENE_HALLWAY2 7
|
||||
#define SCENE_HALLWAY3 8
|
||||
#define SCENE_CLOAKROOM 9
|
||||
|
||||
// game.cpp
|
||||
void scene_setup(scene *s, int scene, int fromscene);
|
||||
|
|
113
game.cpp
113
game.cpp
|
@ -13,14 +13,16 @@ extern const char _binary_sprite_lobby_raw_start[];
|
|||
extern const char _binary_sprite_managers_office_raw_start[];
|
||||
extern const char _binary_sprite_managers_office_safe_raw_start[];
|
||||
extern const char _binary_sprite_basement_raw_start[];
|
||||
extern const char _binary_sprite_cloakroom_raw_start[];
|
||||
extern const char _binary_sprite_hallway1_raw_start[];
|
||||
extern const char _binary_sprite_hallway2_raw_start[];
|
||||
extern const char _binary_sprite_hallway3_raw_start[];
|
||||
extern const char _binary_sprite_item_pager_raw_start[];
|
||||
|
||||
extern const char _binary_sprite_stickman_raw_start[];
|
||||
|
||||
extern struct navmesh navmesh_lobby;
|
||||
extern struct navmesh navmesh_managers_office;
|
||||
extern struct navmesh navmesh_basement;
|
||||
extern struct level_predef_data predef_basement, predef_lobby, predef_managers_office;
|
||||
extern struct navmesh navmesh_lobby, navmesh_managers_office, navmesh_basement, navmesh_cloakroom, navmesh_hallway1, navmesh_hallway2, navmesh_hallway3;
|
||||
extern struct level_predef_data predef_basement, predef_lobby, predef_managers_office, predef_cloakroom, predef_hallway1, predef_hallway2, predef_hallway3;
|
||||
|
||||
static void create_player(scene *me, int x, int y) {
|
||||
const int WIDTH=51, HEIGHT=111;
|
||||
|
@ -33,12 +35,9 @@ void scene_setup(scene *me, int scene, int fromscene) {
|
|||
scene_add_object(me, OBJID_BACKGROUND, 0, 0, BGWIDTH, BGHEIGHT, _binary_sprite_lobby_raw_start);
|
||||
scene_load_predef(me, &predef_lobby);
|
||||
switch(fromscene) {
|
||||
case SCENE_MANAGERS_OFFICE:
|
||||
create_player(me, 256, 445);
|
||||
break;
|
||||
default:
|
||||
create_player(me, 424, 675);
|
||||
break;
|
||||
case SCENE_MANAGERS_OFFICE: create_player(me, 256, 445); break;
|
||||
case SCENE_CLOAKROOM: create_player(me, 777, 443); break;
|
||||
default: create_player(me, 424, 675); break;
|
||||
}
|
||||
me->navmesh = &navmesh_lobby;
|
||||
if(fromscene == -1) {
|
||||
|
@ -49,15 +48,10 @@ void scene_setup(scene *me, int scene, int fromscene) {
|
|||
scene_add_object(me, OBJID_BACKGROUND, 0, 0, BGWIDTH, BGHEIGHT, _binary_sprite_managers_office_raw_start);
|
||||
scene_load_predef(me, &predef_managers_office);
|
||||
switch(fromscene) {
|
||||
case SCENE_LOBBY:
|
||||
create_player(me, 804, 708);
|
||||
break;
|
||||
case SCENE_BASEMENT:
|
||||
create_player(me, 408, 559);
|
||||
break;
|
||||
default:
|
||||
create_player(me, 424, 675);
|
||||
break;
|
||||
case SCENE_LOBBY: create_player(me, 804, 708); break;
|
||||
case SCENE_BASEMENT: create_player(me, 408, 559); break;
|
||||
case SCENE_HALLWAY1: create_player(me, 664, 419); break;
|
||||
default: create_player(me, 424, 675); break;
|
||||
}
|
||||
me->navmesh = &navmesh_managers_office;
|
||||
break;
|
||||
|
@ -74,16 +68,41 @@ void scene_setup(scene *me, int scene, int fromscene) {
|
|||
if(!savefile.got_pager_from_basement) {
|
||||
scene_add_object(me, OBJID_PAGER, 556, 520, 87, 87, _binary_sprite_item_pager_raw_start);
|
||||
}
|
||||
switch(fromscene) {
|
||||
case SCENE_MANAGERS_OFFICE:
|
||||
create_player(me, 435, 404);
|
||||
break;
|
||||
default:
|
||||
create_player(me, 424, 675);
|
||||
break;
|
||||
}
|
||||
create_player(me, 435, 404);
|
||||
me->navmesh = &navmesh_basement;
|
||||
break;
|
||||
case SCENE_CLOAKROOM:
|
||||
scene_add_object(me, OBJID_BACKGROUND, 0, 0, BGWIDTH, BGHEIGHT, _binary_sprite_cloakroom_raw_start);
|
||||
scene_load_predef(me, &predef_cloakroom);
|
||||
me->navmesh = &navmesh_cloakroom;
|
||||
create_player(me, 361, 714);
|
||||
break;
|
||||
case SCENE_HALLWAY1:
|
||||
scene_add_object(me, OBJID_BACKGROUND, 0, 0, BGWIDTH, BGHEIGHT, _binary_sprite_hallway1_raw_start);
|
||||
scene_load_predef(me, &predef_hallway1);
|
||||
me->navmesh = &navmesh_hallway1;
|
||||
switch(fromscene) {
|
||||
case SCENE_MANAGERS_OFFICE: default: create_player(me, 531, 714); break;
|
||||
case SCENE_HALLWAY2: create_player(me, 553, 75); break;
|
||||
}
|
||||
break;
|
||||
case SCENE_HALLWAY2:
|
||||
scene_add_object(me, OBJID_BACKGROUND, 0, 0, BGWIDTH, BGHEIGHT, _binary_sprite_hallway2_raw_start);
|
||||
scene_load_predef(me, &predef_hallway2);
|
||||
me->navmesh = &navmesh_hallway2;
|
||||
switch(fromscene) {
|
||||
case SCENE_HALLWAY1: default: create_player(me, 531, 714); break;
|
||||
case SCENE_HALLWAY3: create_player(me, 553, 75); break;
|
||||
}
|
||||
break;
|
||||
case SCENE_HALLWAY3:
|
||||
scene_add_object(me, OBJID_BACKGROUND, 0, 0, BGWIDTH, BGHEIGHT, _binary_sprite_hallway3_raw_start);
|
||||
scene_load_predef(me, &predef_hallway3);
|
||||
me->navmesh = &navmesh_hallway3;
|
||||
switch(fromscene) {
|
||||
case SCENE_HALLWAY2: default: create_player(me, 531, 714); break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -200,6 +219,9 @@ void onclick(int curscene, struct object *obj) {
|
|||
case OBJID_LEAVE_ROOM:
|
||||
start_player_walk_to_point_then(obj->x + obj->width/2, obj->y + obj->height, do_leave_lobby_on_walk_finish);
|
||||
return;
|
||||
case OBJID_LOBBY_TO_CLOAKROOM:
|
||||
start_player_walk_to_point_then_transition_scene(777, 441, SCENE_CLOAKROOM);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SCENE_MANAGERS_OFFICE:
|
||||
|
@ -213,6 +235,9 @@ void onclick(int curscene, struct object *obj) {
|
|||
case OBJID_MANAGERS_OFFICE_TRAPDOOR:
|
||||
start_player_walk_to_point_then_transition_scene(408, 559, SCENE_BASEMENT);
|
||||
return;
|
||||
case OBJID_MANAGERS_OFFICE_TO_HALLWAY:
|
||||
start_player_walk_to_point_then_transition_scene(665, 418, SCENE_HALLWAY1);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SCENE_BASEMENT:
|
||||
|
@ -228,6 +253,40 @@ void onclick(int curscene, struct object *obj) {
|
|||
return;
|
||||
}
|
||||
break;
|
||||
case SCENE_CLOAKROOM:
|
||||
switch(obj->id) {
|
||||
case OBJID_LEAVE_ROOM:
|
||||
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_LOBBY);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SCENE_HALLWAY1:
|
||||
switch(obj->id) {
|
||||
case OBJID_LEAVE_ROOM:
|
||||
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_MANAGERS_OFFICE);
|
||||
return;
|
||||
case OBJID_NEXT_ROOM:
|
||||
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY2);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SCENE_HALLWAY2:
|
||||
switch(obj->id) {
|
||||
case OBJID_LEAVE_ROOM:
|
||||
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY1);
|
||||
return;
|
||||
case OBJID_NEXT_ROOM:
|
||||
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY3);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SCENE_HALLWAY3:
|
||||
switch(obj->id) {
|
||||
case OBJID_LEAVE_ROOM:
|
||||
start_player_walk_to_point_then_transition_scene(obj->x + obj->width/2, obj->y + obj->height, SCENE_HALLWAY2);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<?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="5" nextobjectid="3">
|
||||
<imagelayer id="2" name="Image Layer 1">
|
||||
<image source="../build/default/cloakroom.png" width="1066" height="800"/>
|
||||
</imagelayer>
|
||||
<objectgroup id="4" name="navmesh">
|
||||
<object id="1" x="245" y="418">
|
||||
<polygon points="0,0 -171,296 753,296 581,0"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<objectgroup id="3" name="clickable">
|
||||
<object id="2" name="OBJID_LEAVE_ROOM" x="283" y="437" width="157" height="276"/>
|
||||
</objectgroup>
|
||||
</map>
|
|
@ -0,0 +1,39 @@
|
|||
<?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="5" nextobjectid="12">
|
||||
<imagelayer id="2" name="Image Layer 1">
|
||||
<image source="../build/default/hallway1.png" width="1066" height="800"/>
|
||||
</imagelayer>
|
||||
<objectgroup id="4" name="navmesh">
|
||||
<object id="2" x="346" y="714">
|
||||
<polygon points="0,0 119,-173 45,-173"/>
|
||||
</object>
|
||||
<object id="3" x="600" y="517">
|
||||
<polygon points="0,0 70,200 46,0"/>
|
||||
</object>
|
||||
<object id="4" x="346" y="714">
|
||||
<polygon points="0,0 324,3 254,-197 119,-173"/>
|
||||
</object>
|
||||
<object id="5" x="465" y="541">
|
||||
<polygon points="0,0 67,-164 107,-158 135,-24"/>
|
||||
</object>
|
||||
<object id="6" x="532" y="377">
|
||||
<polygon points="0,0 0,-108 51,-176 74,-176 91,-41 40,6"/>
|
||||
</object>
|
||||
<object id="7" x="572" y="383">
|
||||
<polygon points="0,0 57,5 51,-47"/>
|
||||
</object>
|
||||
<object id="8" x="532" y="269">
|
||||
<polygon points="0,0 -73,2 -24,-174 39,-168 51,-68"/>
|
||||
</object>
|
||||
<object id="9" x="508" y="95">
|
||||
<polygon points="0,0 5,-21 83,-21 84,-6 63,6"/>
|
||||
</object>
|
||||
<object id="10" x="571" y="101">
|
||||
<polygon points="0,0 23,0 21,-12"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<objectgroup id="3" name="clickable">
|
||||
<object id="1" name="OBJID_LEAVE_ROOM" x="466" y="439" width="155" height="277"/>
|
||||
<object id="11" name="OBJID_NEXT_ROOM" x="511" y="1" width="80" height="74"/>
|
||||
</objectgroup>
|
||||
</map>
|
|
@ -0,0 +1,42 @@
|
|||
<?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="5" nextobjectid="13">
|
||||
<imagelayer id="2" name="Image Layer 1">
|
||||
<image source="../build/default/hallway2.png" width="1066" height="800"/>
|
||||
</imagelayer>
|
||||
<objectgroup id="4" name="navmesh">
|
||||
<object id="3" x="513" y="76">
|
||||
<polygon points="0,0 14,18 79,16 77,1"/>
|
||||
</object>
|
||||
<object id="4" x="513" y="76">
|
||||
<polygon points="0,0 -6,20 14,18"/>
|
||||
</object>
|
||||
<object id="5" x="592" y="92">
|
||||
<polygon points="0,0 3,23 -25,23 -65,2"/>
|
||||
</object>
|
||||
<object id="6" x="527" y="94">
|
||||
<polygon points="0,0 40,21 10,269 -14,270"/>
|
||||
</object>
|
||||
<object id="7" x="513" y="364">
|
||||
<polygon points="0,0 -46,82 -46,159 132,155 120,56 24,-1"/>
|
||||
</object>
|
||||
<object id="8" x="513" y="364">
|
||||
<polygon points="0,0 -47,5 -46,82"/>
|
||||
</object>
|
||||
<object id="9" x="466" y="369">
|
||||
<polygon points="0,0 -17,-43 -50,78 1,77"/>
|
||||
</object>
|
||||
<object id="10" x="467" y="523">
|
||||
<polygon points="0,0 -14,86 190,87 178,-4"/>
|
||||
</object>
|
||||
<object id="11" x="453" y="609">
|
||||
<polygon points="0,0 -106,105 218,105 204,1"/>
|
||||
</object>
|
||||
<object id="12" x="453" y="609">
|
||||
<polygon points="0,0 -79,1 -106,105"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<objectgroup id="3" name="clickable">
|
||||
<object id="1" name="OBJID_LEAVE_ROOM" x="485" y="654" width="43" height="54"/>
|
||||
<object id="2" name="OBJID_NEXT_ROOM" x="510" y="1" width="85" height="74"/>
|
||||
</objectgroup>
|
||||
</map>
|
|
@ -0,0 +1,44 @@
|
|||
<?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="5" nextobjectid="14">
|
||||
<imagelayer id="2" name="Image Layer 1">
|
||||
<image source="../build/default/hallway3.png" width="1066" height="800"/>
|
||||
</imagelayer>
|
||||
<objectgroup id="4" name="navmesh">
|
||||
<object id="2" x="483" y="476">
|
||||
<polygon points="0,0 -91,66 -137,240 189,239 167,69 79,-3"/>
|
||||
</object>
|
||||
<object id="3" x="483" y="476">
|
||||
<polygon points="0,0 -74,-4 -91,66"/>
|
||||
</object>
|
||||
<object id="4" x="562" y="473">
|
||||
<polygon points="0,0 88,72 78,-3"/>
|
||||
</object>
|
||||
<object id="5" x="562" y="473">
|
||||
<polygon points="0,0 -79,3 -67,-144 -9,-146"/>
|
||||
</object>
|
||||
<object id="7" x="495" y="329">
|
||||
<polygon points="0,0 -40,-35 -49,-2"/>
|
||||
</object>
|
||||
<object id="8" x="553" y="328">
|
||||
<polygon points="0,-1 11,-13 68,-15 70,-3"/>
|
||||
</object>
|
||||
<object id="9" x="564" y="315">
|
||||
<polygon points="0,0 -11,-110 -27,-124 -76,-140 -109,-21 -69,14 -11,12"/>
|
||||
</object>
|
||||
<object id="10" x="537" y="191">
|
||||
<polygon points="0,0 33,-3 39,13 16,14"/>
|
||||
</object>
|
||||
<object id="11" x="570" y="188">
|
||||
<polygon points="0,0 35,-1 38,15 6,16"/>
|
||||
</object>
|
||||
<object id="12" x="488" y="175">
|
||||
<polygon points="0,0 49,16 82,13 73,-59 20,-78"/>
|
||||
</object>
|
||||
<object id="13" x="508" y="97">
|
||||
<polygon points="0,0 6,-21 82,-21 88,17 53,19"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<objectgroup id="3" name="clickable">
|
||||
<object id="1" name="OBJID_LEAVE_ROOM" x="486" y="654" width="41" height="57"/>
|
||||
</objectgroup>
|
||||
</map>
|
|
@ -1,11 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="40" height="25" tilewidth="32" tileheight="32" infinite="0" nextlayerid="5" nextobjectid="20">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="40" height="25" tilewidth="32" tileheight="32" infinite="0" nextlayerid="5" nextobjectid="21">
|
||||
<imagelayer id="2" name="Image Layer 1">
|
||||
<image source="../build/default/lobby.png" width="1066" height="800"/>
|
||||
</imagelayer>
|
||||
<objectgroup id="3" name="clickable">
|
||||
<object id="1" name="OBJID_DOOR_TO_MANAGERS_OFFICE_FROM_LOBBY" x="227" y="312" width="64" height="128"/>
|
||||
<object id="19" name="OBJID_LEAVE_ROOM" x="468" y="720" width="83" height="79"/>
|
||||
<object id="20" name="OBJID_LOBBY_TO_CLOAKROOM" x="752" y="319" width="51" height="121"/>
|
||||
</objectgroup>
|
||||
<objectgroup id="4" name="navmesh">
|
||||
<object id="10" x="178" y="440">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="20" tilewidth="32" tileheight="32" infinite="0" nextlayerid="5" nextobjectid="24">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="20" tilewidth="32" tileheight="32" infinite="0" nextlayerid="5" nextobjectid="25">
|
||||
<imagelayer id="2" name="Image Layer 1">
|
||||
<image source="../build/default/managers_office.png" width="1280" height="800"/>
|
||||
</imagelayer>
|
||||
|
@ -46,5 +46,6 @@
|
|||
<object id="23" name="OBJID_MANAGERS_OFFICE_SAFE" x="784" y="417">
|
||||
<polygon points="0,0 1,-122 150,-122 193,-79 192,75 40,75"/>
|
||||
</object>
|
||||
<object id="24" name="OBJID_MANAGERS_OFFICE_TO_HALLWAY" x="614" y="236" width="105" height="181"/>
|
||||
</objectgroup>
|
||||
</map>
|
||||
|
|
3
objids.h
3
objids.h
|
@ -14,5 +14,8 @@
|
|||
#define OBJID_MENUBAR 14
|
||||
#define OBJID_LEAVE_ROOM 15
|
||||
#define OBJID_PAGER 16
|
||||
#define OBJID_NEXT_ROOM 17
|
||||
#define OBJID_LOBBY_TO_CLOAKROOM 18
|
||||
#define OBJID_MANAGERS_OFFICE_TO_HALLWAY 19
|
||||
|
||||
#define OBJID_INVENTORY_SLOTS 0x10000000 // + slot number
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue