Add all the types of switches
This commit is contained in:
parent
531ee88980
commit
91dfbd8db9
7
Makefile
7
Makefile
|
@ -10,7 +10,14 @@ TILES = player_stand_tile.inc \
|
||||||
player_walk2_tile.inc player_walk2_tile_reversed.inc \
|
player_walk2_tile.inc player_walk2_tile_reversed.inc \
|
||||||
grass_tile.inc dirt_tile.inc flag_tile.inc \
|
grass_tile.inc dirt_tile.inc flag_tile.inc \
|
||||||
switch1_off_tile.inc switch1_on_tile.inc \
|
switch1_off_tile.inc switch1_on_tile.inc \
|
||||||
|
switch2_off_tile.inc switch2_on_tile.inc \
|
||||||
|
switch3_off_tile.inc switch3_on_tile.inc \
|
||||||
|
switch4_off_tile.inc switch4_on_tile.inc \
|
||||||
|
switch0_off_tile.inc switch0_on_tile.inc \
|
||||||
tile1_off_tile.inc tile1_on_tile.inc \
|
tile1_off_tile.inc tile1_on_tile.inc \
|
||||||
|
tile2_off_tile.inc tile2_on_tile.inc \
|
||||||
|
tile3_off_tile.inc tile3_on_tile.inc \
|
||||||
|
tile4_off_tile.inc tile4_on_tile.inc \
|
||||||
stage1_tile.inc stage2_tile.inc stage3_tile.inc stage4_tile.inc \
|
stage1_tile.inc stage2_tile.inc stage3_tile.inc stage4_tile.inc \
|
||||||
stage5_tile.inc stage6_tile.inc stage7_tile.inc stage8_tile.inc \
|
stage5_tile.inc stage6_tile.inc stage7_tile.inc stage8_tile.inc \
|
||||||
star_tile.inc \
|
star_tile.inc \
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
xSWITCH_SWITCH
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
|
||||||
|
xx
|
||||||
|
xx
|
||||||
|
xxxxxx
|
||||||
|
xx xx
|
||||||
|
xx xx
|
||||||
|
tt
|
||||||
|
tt t
|
||||||
|
t tt
|
||||||
|
tt
|
|
@ -0,0 +1,14 @@
|
||||||
|
xSWITCH_SWITCH
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
|
||||||
|
tt
|
||||||
|
tt t
|
||||||
|
t tt
|
||||||
|
tt
|
||||||
|
xx xx
|
||||||
|
xx xx
|
||||||
|
xxxxxx
|
||||||
|
xx
|
||||||
|
xx
|
|
@ -0,0 +1,14 @@
|
||||||
|
xSWITCH_SWITCH
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
|
||||||
|
xx
|
||||||
|
xx
|
||||||
|
xxxxxx
|
||||||
|
xx xx
|
||||||
|
xx xx
|
||||||
|
tt
|
||||||
|
t t
|
||||||
|
t
|
||||||
|
ttt
|
|
@ -0,0 +1,14 @@
|
||||||
|
xSWITCH_SWITCH
|
||||||
|
tTILE2
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
|
||||||
|
tt
|
||||||
|
t t
|
||||||
|
t
|
||||||
|
ttt
|
||||||
|
xx xx
|
||||||
|
xx xx
|
||||||
|
xxxxxx
|
||||||
|
xx
|
||||||
|
xx
|
|
@ -0,0 +1,14 @@
|
||||||
|
xSWITCH_SWITCH
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
|
||||||
|
xx
|
||||||
|
xx
|
||||||
|
xxxxxx
|
||||||
|
xx xx
|
||||||
|
xx xx
|
||||||
|
ttt
|
||||||
|
tt
|
||||||
|
t
|
||||||
|
ttt
|
|
@ -0,0 +1,14 @@
|
||||||
|
xSWITCH_SWITCH
|
||||||
|
tTILE3
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
|
||||||
|
ttt
|
||||||
|
tt
|
||||||
|
t
|
||||||
|
ttt
|
||||||
|
xx xx
|
||||||
|
xx xx
|
||||||
|
xxxxxx
|
||||||
|
xx
|
||||||
|
xx
|
|
@ -0,0 +1,14 @@
|
||||||
|
xSWITCH_SWITCH
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
|
||||||
|
xx
|
||||||
|
xx
|
||||||
|
xxxxxx
|
||||||
|
xx xx
|
||||||
|
xx xx
|
||||||
|
t t
|
||||||
|
t t
|
||||||
|
tttt
|
||||||
|
t
|
|
@ -0,0 +1,14 @@
|
||||||
|
xSWITCH_SWITCH
|
||||||
|
tTILE4
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
|
||||||
|
t t
|
||||||
|
t t
|
||||||
|
tttt
|
||||||
|
t
|
||||||
|
xx xx
|
||||||
|
xx xx
|
||||||
|
xxxxxx
|
||||||
|
xx
|
||||||
|
xx
|
100
switcher.c
100
switcher.c
|
@ -34,6 +34,9 @@ enum palette {
|
||||||
FLAG_FLAG,
|
FLAG_FLAG,
|
||||||
SWITCH_SWITCH,
|
SWITCH_SWITCH,
|
||||||
TILE1,
|
TILE1,
|
||||||
|
TILE2,
|
||||||
|
TILE3,
|
||||||
|
TILE4,
|
||||||
STAR_STAR,
|
STAR_STAR,
|
||||||
};
|
};
|
||||||
static enum palette playfield[PLAYFIELD_SIDE * PLAYFIELD_SIDE];
|
static enum palette playfield[PLAYFIELD_SIDE * PLAYFIELD_SIDE];
|
||||||
|
@ -47,10 +50,26 @@ static enum palette playfield[PLAYFIELD_SIDE * PLAYFIELD_SIDE];
|
||||||
#include "grass_tile.inc"
|
#include "grass_tile.inc"
|
||||||
#include "dirt_tile.inc"
|
#include "dirt_tile.inc"
|
||||||
#include "flag_tile.inc"
|
#include "flag_tile.inc"
|
||||||
|
|
||||||
#include "switch1_off_tile.inc"
|
#include "switch1_off_tile.inc"
|
||||||
#include "switch1_on_tile.inc"
|
#include "switch1_on_tile.inc"
|
||||||
|
#include "switch2_off_tile.inc"
|
||||||
|
#include "switch2_on_tile.inc"
|
||||||
|
#include "switch3_off_tile.inc"
|
||||||
|
#include "switch3_on_tile.inc"
|
||||||
|
#include "switch4_off_tile.inc"
|
||||||
|
#include "switch4_on_tile.inc"
|
||||||
|
#include "switch0_off_tile.inc"
|
||||||
|
#include "switch0_on_tile.inc"
|
||||||
|
|
||||||
#include "tile1_off_tile.inc"
|
#include "tile1_off_tile.inc"
|
||||||
#include "tile1_on_tile.inc"
|
#include "tile1_on_tile.inc"
|
||||||
|
#include "tile2_off_tile.inc"
|
||||||
|
#include "tile2_on_tile.inc"
|
||||||
|
#include "tile3_off_tile.inc"
|
||||||
|
#include "tile3_on_tile.inc"
|
||||||
|
#include "tile4_off_tile.inc"
|
||||||
|
#include "tile4_on_tile.inc"
|
||||||
|
|
||||||
#include "stage1_tile.inc"
|
#include "stage1_tile.inc"
|
||||||
#include "stage2_tile.inc"
|
#include "stage2_tile.inc"
|
||||||
|
@ -97,34 +116,34 @@ static char *stages[] = {
|
||||||
"ggg gg",
|
"ggg gg",
|
||||||
" "
|
" "
|
||||||
" "
|
" "
|
||||||
|
"B N"
|
||||||
|
"2222222222"
|
||||||
|
" 1 "
|
||||||
" "
|
" "
|
||||||
|
"1 "
|
||||||
" "
|
" "
|
||||||
|
"@A1 !"
|
||||||
|
"g1 gg",
|
||||||
|
" d "
|
||||||
|
" d N "
|
||||||
|
" d "
|
||||||
|
" d g "
|
||||||
|
" d "
|
||||||
|
"Adg ggg"
|
||||||
|
" 1 !"
|
||||||
|
" g g"
|
||||||
|
" gd gd"
|
||||||
|
"ggggddggdd",
|
||||||
|
" !"
|
||||||
|
" D 4"
|
||||||
|
"C 3 44"
|
||||||
|
"3 3 4 "
|
||||||
|
" B"
|
||||||
|
" 222 2 2"
|
||||||
" "
|
" "
|
||||||
" "
|
" A 1 111"
|
||||||
" "
|
"@g "
|
||||||
" "
|
"gd ",
|
||||||
" "
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
" ",
|
|
||||||
" "
|
" "
|
||||||
" "
|
" "
|
||||||
" "
|
" "
|
||||||
|
@ -157,7 +176,7 @@ static char *stages[] = {
|
||||||
" ",
|
" ",
|
||||||
};
|
};
|
||||||
|
|
||||||
enum switches_state { ALL_OFF, SWITCH1 };
|
enum switches_state { ALL_OFF, SWITCH1, SWITCH2, SWITCH3, SWITCH4 };
|
||||||
enum switches_state switches_state;
|
enum switches_state switches_state;
|
||||||
|
|
||||||
static uint32_t main_window = 0;
|
static uint32_t main_window = 0;
|
||||||
|
@ -250,8 +269,12 @@ static char sample_tilemap(size_t x, size_t y) {
|
||||||
|
|
||||||
static bool solid_tile(size_t x, size_t y) {
|
static bool solid_tile(size_t x, size_t y) {
|
||||||
char tile = sample_tilemap(x, y);
|
char tile = sample_tilemap(x, y);
|
||||||
return tile != ' ' && tile != '!' && tile != '@' && tile != 'A' &&
|
return tile != ' ' && tile != '!' && tile != '@' &&
|
||||||
(tile != '1' || switches_state == SWITCH1);
|
tile != 'A' && (tile != '1' || switches_state == SWITCH1) &&
|
||||||
|
tile != 'B' && (tile != '2' || switches_state == SWITCH2) &&
|
||||||
|
tile != 'C' && (tile != '3' || switches_state == SWITCH3) &&
|
||||||
|
tile != 'D' && (tile != '4' || switches_state == SWITCH4) &&
|
||||||
|
tile != 'N';
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool jumping = false;
|
static bool jumping = false;
|
||||||
|
@ -431,6 +454,17 @@ static void update_stage(struct timespec now, struct timespec dt_timespec) {
|
||||||
case 'A':
|
case 'A':
|
||||||
switches_state = SWITCH1;
|
switches_state = SWITCH1;
|
||||||
break;
|
break;
|
||||||
|
case 'B':
|
||||||
|
switches_state = SWITCH2;
|
||||||
|
break;
|
||||||
|
case 'C':
|
||||||
|
switches_state = SWITCH3;
|
||||||
|
break;
|
||||||
|
case 'D':
|
||||||
|
switches_state = SWITCH4;
|
||||||
|
break;
|
||||||
|
case 'N':
|
||||||
|
switches_state = ALL_OFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -484,7 +518,14 @@ static void draw_tiles(void) {
|
||||||
case 'd': tile = dirt_tile; break;
|
case 'd': tile = dirt_tile; break;
|
||||||
case '!': tile = flag_tile; break;
|
case '!': tile = flag_tile; break;
|
||||||
case 'A': tile = switches_state == SWITCH1 ? switch1_on_tile : switch1_off_tile; break;
|
case 'A': tile = switches_state == SWITCH1 ? switch1_on_tile : switch1_off_tile; break;
|
||||||
|
case 'B': tile = switches_state == SWITCH2 ? switch2_on_tile : switch2_off_tile; break;
|
||||||
|
case 'C': tile = switches_state == SWITCH3 ? switch3_on_tile : switch3_off_tile; break;
|
||||||
|
case 'D': tile = switches_state == SWITCH4 ? switch4_on_tile : switch4_off_tile; break;
|
||||||
|
case 'N': tile = switches_state == ALL_OFF ? switch0_on_tile : switch0_off_tile; break;
|
||||||
case '1': tile = switches_state == SWITCH1 ? tile1_on_tile : tile1_off_tile; break;
|
case '1': tile = switches_state == SWITCH1 ? tile1_on_tile : tile1_off_tile; break;
|
||||||
|
case '2': tile = switches_state == SWITCH2 ? tile2_on_tile : tile2_off_tile; break;
|
||||||
|
case '3': tile = switches_state == SWITCH3 ? tile3_on_tile : tile3_off_tile; break;
|
||||||
|
case '4': tile = switches_state == SWITCH4 ? tile4_on_tile : tile4_off_tile; break;
|
||||||
}
|
}
|
||||||
if (tile)
|
if (tile)
|
||||||
draw_tile(tile, tx * TILE_SIDE, ty * TILE_SIDE);
|
draw_tile(tile, tx * TILE_SIDE, ty * TILE_SIDE);
|
||||||
|
@ -594,6 +635,9 @@ int main(int argc, char *argv[]) {
|
||||||
[FLAG_FLAG] = make_color(255, 0, 0),
|
[FLAG_FLAG] = make_color(255, 0, 0),
|
||||||
[SWITCH_SWITCH] = make_color(200, 64, 0),
|
[SWITCH_SWITCH] = make_color(200, 64, 0),
|
||||||
[TILE1] = make_color(0, 255, 0),
|
[TILE1] = make_color(0, 255, 0),
|
||||||
|
[TILE2] = make_color(0, 0, 255),
|
||||||
|
[TILE3] = make_color(255, 0, 0),
|
||||||
|
[TILE4] = make_color(255, 255, 0),
|
||||||
[STAR_STAR] = make_color(255, 255, 0),
|
[STAR_STAR] = make_color(255, 255, 0),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
xTILE2
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
x x x x
|
||||||
|
x
|
||||||
|
x
|
||||||
|
tt x
|
||||||
|
x t t
|
||||||
|
t x
|
||||||
|
x ttt
|
||||||
|
x
|
||||||
|
x
|
||||||
|
x x x x
|
|
@ -0,0 +1,14 @@
|
||||||
|
xTILE2
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
xxxxxxxx
|
||||||
|
xxxxxxxxxx
|
||||||
|
xxxxxxxxxx
|
||||||
|
xxxxttxxxx
|
||||||
|
xxxtxxtxxx
|
||||||
|
xxxxxtxxxx
|
||||||
|
xxxxtttxxx
|
||||||
|
xxxxxxxxxx
|
||||||
|
xxxxxxxxxx
|
||||||
|
xxxxxxxx
|
|
@ -0,0 +1,14 @@
|
||||||
|
xTILE3
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
x x x x
|
||||||
|
x
|
||||||
|
x
|
||||||
|
ttt x
|
||||||
|
x tt
|
||||||
|
t x
|
||||||
|
x ttt
|
||||||
|
x
|
||||||
|
x
|
||||||
|
x x x x
|
|
@ -0,0 +1,15 @@
|
||||||
|
xTILE3
|
||||||
|
tTEXT
|
||||||
|
TILE3
|
||||||
|
.BG
|
||||||
|
----------
|
||||||
|
.x x x x .
|
||||||
|
x
|
||||||
|
x
|
||||||
|
ttt x
|
||||||
|
x tt
|
||||||
|
t x
|
||||||
|
x ttt
|
||||||
|
x
|
||||||
|
x
|
||||||
|
. x x x x.
|
|
@ -0,0 +1,14 @@
|
||||||
|
xTILE4
|
||||||
|
tTEXT
|
||||||
|
BG
|
||||||
|
----------
|
||||||
|
x x x x
|
||||||
|
x
|
||||||
|
x
|
||||||
|
t t x
|
||||||
|
x t t
|
||||||
|
tttt x
|
||||||
|
x t
|
||||||
|
x
|
||||||
|
x
|
||||||
|
x x x x
|
|
@ -0,0 +1,15 @@
|
||||||
|
xTILE4
|
||||||
|
tTEXT
|
||||||
|
.BG
|
||||||
|
TILE4
|
||||||
|
----------
|
||||||
|
.x x x x .
|
||||||
|
x
|
||||||
|
x
|
||||||
|
t t x
|
||||||
|
x t t
|
||||||
|
tttt x
|
||||||
|
x t
|
||||||
|
x
|
||||||
|
x
|
||||||
|
. x x x x.
|
Loading…
Reference in New Issue