Added test map file.
This commit is contained in:
61
maps/start.map
Normal file
61
maps/start.map
Normal file
@@ -0,0 +1,61 @@
|
||||
[MAP]
|
||||
32 32
|
||||
00000000000000000000000000000000
|
||||
00000000000044444440000000000000
|
||||
00000000000441111144000000000000
|
||||
00000000004411666114400000000000
|
||||
44444000044116777611440000000000
|
||||
41514400441167777761144000000000
|
||||
41771440411677737776114444444000
|
||||
41777144416777383777614115114000
|
||||
41997711116773888377611166614000
|
||||
41797726626738888837666666654000
|
||||
41997711116773888377611166614000
|
||||
41777144416777383777614115114000
|
||||
41771440411677737776114444444000
|
||||
41514400441167777761144000000000
|
||||
44444000044116777611440000000000
|
||||
00000000004411666114400000000000
|
||||
00000000000441161144000000000000
|
||||
00000000000044565440000000000000
|
||||
00000000000004161400000000000000
|
||||
00000000000004565400000000000000
|
||||
00000000444444161444444000000000
|
||||
00000000411551161155114000000000
|
||||
00000000416666666666614000000000
|
||||
00000000456666666666654000000000
|
||||
00000000456677777776654000000000
|
||||
00000000416677777776614000000000
|
||||
00000000416677777776614000000000
|
||||
00000000456677777776654000000000
|
||||
00000000456666666666654000000000
|
||||
00000000416666666666614000000000
|
||||
00000000411551151155114000000000
|
||||
00000000444444444444444000000000
|
||||
[PLAYER]
|
||||
%player = X Y
|
||||
player = 27 15
|
||||
[EXITS]
|
||||
%exit = X Y MAP_NAME MAP_X MAP_Y
|
||||
exit = 8 25 maps/start.map 0 0
|
||||
exit = 9 25 maps/start.map 0 0
|
||||
exit = 10 24 maps/start.map 0 0
|
||||
exit = 10 25 maps/start.map 0 0
|
||||
[DOORS]
|
||||
%door = X Y ID UNLOCKED
|
||||
door = 9 22 0 0
|
||||
[KEYS]
|
||||
%key = X Y ID
|
||||
key = 7 2 0
|
||||
[PERSONS]
|
||||
%person = X Y NAME DIALOG_ID
|
||||
person = 8 24 Hugo 0
|
||||
person = 9 2 Paco 1
|
||||
person = 23 11 Luis 2
|
||||
person = 23 19 Donald 3
|
||||
[DIALOGS]
|
||||
%dialog = ID TEXT
|
||||
dialog = 0 Step into the elevator to retry.
|
||||
dialog = 1 I'm unreachable!
|
||||
dialog = 2 Welcome to Cyjam!
|
||||
dialog = 3 Have fun.
|
@@ -28,7 +28,7 @@ static bool **vis;
|
||||
static bool **seen;
|
||||
static bool ** wmap;
|
||||
static bool w_mov = FALSE;
|
||||
static bool uK, dK, lK, rK;
|
||||
static bool uK, dK, lK, rK, esc;
|
||||
static clock_t then, msgThen;
|
||||
static player_t player;
|
||||
static map_cell_t ** map;
|
||||
@@ -56,6 +56,8 @@ bool canMoveTo(int, int);
|
||||
void initInGameState( gs_t * gs) {
|
||||
int i, j;
|
||||
|
||||
uK = dK = lK = rK = esc = FALSE;
|
||||
|
||||
gs->name = IN_GAME;
|
||||
gs->input = &input;
|
||||
gs->update = &update;
|
||||
@@ -86,7 +88,7 @@ void initInGameState( gs_t * gs) {
|
||||
}
|
||||
|
||||
initObjects();
|
||||
loadMap("map_file.map");
|
||||
loadMap("maps/start.map");
|
||||
|
||||
fov_settings_init(&fov_settings);
|
||||
fov_settings_set_opacity_test_function(&fov_settings, opaque);
|
||||
@@ -103,6 +105,7 @@ void input(){
|
||||
if(key == KEY_DOWN) dK = TRUE;
|
||||
if(key == KEY_LEFT) lK = TRUE;
|
||||
if(key == KEY_RIGHT) rK = TRUE;
|
||||
if(key == 27) esc = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,6 +126,8 @@ gsname_t update(){
|
||||
|
||||
if(rK) nX = (iX + 1) % mW;
|
||||
|
||||
if(esc) return IN_GAME;
|
||||
|
||||
/* Find if the player is standing on an exit, then load the next map. */
|
||||
for(i = 0; i < nO; i++){
|
||||
if(objs[i].type == EXIT){
|
||||
@@ -135,7 +140,7 @@ gsname_t update(){
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO: use keys.*/
|
||||
/* If the player is standing on a key, pick it up. */
|
||||
for(i = 0; i < nO; i++){
|
||||
if(objs[i].type == KEY){
|
||||
if(objs[i].x == iY && objs[i].y == iX){
|
||||
@@ -150,7 +155,7 @@ gsname_t update(){
|
||||
}
|
||||
}
|
||||
|
||||
/* Listen to a person. */
|
||||
/* If the player bumps into a person, listen to what they have to say. */
|
||||
for(i = 0; i < nO; i++){
|
||||
if(objs[i].type == PERSON){
|
||||
if(objs[i].x == nY && objs[i].y == nX){
|
||||
@@ -172,6 +177,7 @@ gsname_t update(){
|
||||
}
|
||||
}
|
||||
|
||||
/* If the player bumps into a door, open it if the key is available. */
|
||||
for(i = 0; i < nO; i++){
|
||||
if(objs[i].type == DOOR){
|
||||
if(objs[i].x == nY && objs[i].y == nX){
|
||||
@@ -200,6 +206,7 @@ gsname_t update(){
|
||||
}
|
||||
}
|
||||
|
||||
/* Clear the message buffer after a timeout. */
|
||||
if(newMsg){
|
||||
msgNow = clock();
|
||||
delta = msgNow - msgThen;
|
||||
@@ -336,14 +343,14 @@ void render(int w, int h){
|
||||
if(objs[k].type == DOOR){
|
||||
printw("\u25D9");
|
||||
}else{
|
||||
if(vis[dj][di]){
|
||||
if(objs[k].type == KEY){
|
||||
printw("k");
|
||||
}else if(objs[k].type == PERSON){
|
||||
printw("\u263A");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(vis[dj][di]){
|
||||
if(objs[k].type == KEY){
|
||||
printw("k");
|
||||
}else if(objs[k].type == PERSON){
|
||||
printw("\u263A");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user