mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2024-12-13 04:27:59 +01:00
moonwalk is now timeline based
This commit is contained in:
parent
c863dfe58c
commit
85ae970597
12 changed files with 75 additions and 44 deletions
|
@ -131,7 +131,7 @@ void Level_Logic(struct Game *game) {
|
||||||
game->level.sheet_tmp+=1;
|
game->level.sheet_tmp+=1;
|
||||||
if (game->level.sheet_tmp >= (game->level.sheet_speed/game->level.speed_modifier)/game->level.sheet_speed_modifier) {
|
if (game->level.sheet_tmp >= (game->level.sheet_speed/game->level.speed_modifier)/game->level.sheet_speed_modifier) {
|
||||||
game->level.sheet_pos++;
|
game->level.sheet_pos++;
|
||||||
game->level.sheet_tmp = 0;
|
game->level.sheet_tmp -= (game->level.sheet_speed/game->level.speed_modifier)/game->level.sheet_speed_modifier;
|
||||||
}
|
}
|
||||||
if (game->level.sheet_pos>=game->level.sheet_cols*game->level.sheet_rows-game->level.sheet_blanks) {
|
if (game->level.sheet_pos>=game->level.sheet_cols*game->level.sheet_rows-game->level.sheet_blanks) {
|
||||||
game->level.sheet_pos=0;
|
game->level.sheet_pos=0;
|
||||||
|
|
|
@ -27,6 +27,7 @@ bool LevelFailed(struct Game *game, struct TM_Action *action, enum TM_ActionStat
|
||||||
al_draw_filled_rectangle(0, 0, game->viewportWidth, game->viewportHeight, al_map_rgba(0,0,0,100));
|
al_draw_filled_rectangle(0, 0, game->viewportWidth, game->viewportHeight, al_map_rgba(0,0,0,100));
|
||||||
al_draw_text_with_shadow(game->menu.font_title, al_map_rgb(255,255,255), game->viewportWidth*0.5, game->viewportHeight*0.4, ALLEGRO_ALIGN_CENTRE, "Failed!");
|
al_draw_text_with_shadow(game->menu.font_title, al_map_rgb(255,255,255), game->viewportWidth*0.5, game->viewportHeight*0.4, ALLEGRO_ALIGN_CENTRE, "Failed!");
|
||||||
} else if (state == TM_ACTIONSTATE_RUNNING) {
|
} else if (state == TM_ACTIONSTATE_RUNNING) {
|
||||||
|
// FIXME: this should be more generic. Some callback function?
|
||||||
game->level.speed-=0.00001;
|
game->level.speed-=0.00001;
|
||||||
if (game->level.speed<=0) {
|
if (game->level.speed<=0) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -156,9 +157,13 @@ bool PassLevel(struct Game *game, struct TM_Action *action, enum TM_ActionState
|
||||||
if (state == TM_ACTIONSTATE_DESTROY) {
|
if (state == TM_ACTIONSTATE_DESTROY) {
|
||||||
Level_Passed(game);
|
Level_Passed(game);
|
||||||
Level_Unload(game);
|
Level_Unload(game);
|
||||||
|
if (game->level.current_level<6) {
|
||||||
game->gamestate = GAMESTATE_LOADING;
|
game->gamestate = GAMESTATE_LOADING;
|
||||||
game->loadstate = GAMESTATE_MAP;
|
game->loadstate = GAMESTATE_MAP;
|
||||||
//TM_AddBackgroundAction(&FadeOut, NULL, 0, "fadeout");
|
} else {
|
||||||
|
game->gamestate = GAMESTATE_LOADING;
|
||||||
|
game->loadstate = GAMESTATE_ABOUT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -192,7 +197,7 @@ bool Letter(struct Game *game, struct TM_Action *action, enum TM_ActionState sta
|
||||||
*f = 0;
|
*f = 0;
|
||||||
action->arguments = TM_AddToArgs(action->arguments, malloc(sizeof(ALLEGRO_AUDIO_STREAM*)));
|
action->arguments = TM_AddToArgs(action->arguments, malloc(sizeof(ALLEGRO_AUDIO_STREAM*)));
|
||||||
ALLEGRO_AUDIO_STREAM** stream = (ALLEGRO_AUDIO_STREAM**)action->arguments->next->value;
|
ALLEGRO_AUDIO_STREAM** stream = (ALLEGRO_AUDIO_STREAM**)action->arguments->next->value;
|
||||||
*stream = al_load_audio_stream(GetDataFilePath("levels/1/letter.flac"), 4, 1024);
|
*stream = al_load_audio_stream(GetDataFilePath(GetLevelFilename(game, "levels/?/letter.flac")), 4, 1024);
|
||||||
al_attach_audio_stream_to_mixer(*stream, game->audio.voice);
|
al_attach_audio_stream_to_mixer(*stream, game->audio.voice);
|
||||||
al_set_audio_stream_playing(*stream, true);
|
al_set_audio_stream_playing(*stream, true);
|
||||||
al_set_audio_stream_gain(*stream, 2.00);
|
al_set_audio_stream_gain(*stream, 2.00);
|
||||||
|
|
|
@ -74,7 +74,7 @@ void Level1_Load(struct Game *game) {
|
||||||
obst->angle = 0;
|
obst->angle = 0;
|
||||||
obst->callback = NULL;
|
obst->callback = NULL;
|
||||||
obst->data = NULL;
|
obst->data = NULL;
|
||||||
obst->bitmap = &(game->level.owl);
|
obst->bitmap = &(game->level.level1.owl);
|
||||||
game->level.dodger.obstacles = obst;
|
game->level.dodger.obstacles = obst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ void Level1_UnloadBitmaps(struct Game *game) {
|
||||||
Dodger_UnloadBitmaps(game);
|
Dodger_UnloadBitmaps(game);
|
||||||
al_destroy_font(game->level.letter_font);
|
al_destroy_font(game->level.letter_font);
|
||||||
al_destroy_bitmap(game->level.letter);
|
al_destroy_bitmap(game->level.letter);
|
||||||
al_destroy_bitmap(game->level.owl);
|
al_destroy_bitmap(game->level.level1.owl);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level1_Preload(struct Game *game) {
|
void Level1_Preload(struct Game *game) {
|
||||||
|
@ -99,7 +99,7 @@ inline int Level1_PreloadSteps() {
|
||||||
|
|
||||||
void Level1_PreloadBitmaps(struct Game *game, void (*progress)(struct Game*, float)) {
|
void Level1_PreloadBitmaps(struct Game *game, void (*progress)(struct Game*, float)) {
|
||||||
PROGRESS_INIT(Level1_PreloadSteps());
|
PROGRESS_INIT(Level1_PreloadSteps());
|
||||||
game->level.owl = LoadScaledBitmap("levels/1/owl.png", game->viewportWidth*0.08, game->viewportWidth*0.08);
|
game->level.level1.owl = LoadScaledBitmap("levels/1/owl.png", game->viewportWidth*0.08, game->viewportWidth*0.08);
|
||||||
PROGRESS;
|
PROGRESS;
|
||||||
game->level.letter_font = al_load_ttf_font(GetDataFilePath("fonts/DejaVuSans.ttf"),game->viewportHeight*0.0225,0 );
|
game->level.letter_font = al_load_ttf_font(GetDataFilePath("fonts/DejaVuSans.ttf"),game->viewportHeight*0.0225,0 );
|
||||||
PROGRESS;
|
PROGRESS;
|
||||||
|
|
|
@ -21,9 +21,15 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "../gamestates/level.h"
|
#include "../gamestates/level.h"
|
||||||
#include "modules/moonwalk.h"
|
#include "modules/moonwalk.h"
|
||||||
|
#include "../timeline.h"
|
||||||
|
#include "actions.h"
|
||||||
|
#include "level2.h"
|
||||||
|
|
||||||
void Level2_Load(struct Game *game) {
|
void Level2_Load(struct Game *game) {
|
||||||
Moonwalk_Load(game);
|
Moonwalk_Load(game);
|
||||||
|
TM_AddAction(&DoMoonwalk, NULL, "moonwalk");
|
||||||
|
TM_AddAction(&PassLevel, NULL, "passlevel");
|
||||||
|
FadeGameState(game, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level2_Unload(struct Game *game) {
|
void Level2_Unload(struct Game *game) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*! \file Level3.c
|
/*! \file level3.c
|
||||||
* \brief Level 3 code.
|
* \brief Level 3 code.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
|
@ -21,9 +21,16 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "../gamestates/level.h"
|
#include "../gamestates/level.h"
|
||||||
#include "modules/moonwalk.h"
|
#include "modules/moonwalk.h"
|
||||||
|
#include "../timeline.h"
|
||||||
|
#include "actions.h"
|
||||||
|
#include "level3.h"
|
||||||
|
|
||||||
void Level3_Load(struct Game *game) {
|
void Level3_Load(struct Game *game) {
|
||||||
Moonwalk_Load(game);
|
Moonwalk_Load(game);
|
||||||
|
TM_AddAction(&DoMoonwalk, NULL, "moonwalk");
|
||||||
|
TM_AddAction(&PassLevel, NULL, "passlevel");
|
||||||
|
TM_AddBackgroundAction(&ShowMeter, NULL, 0, "showmeter");
|
||||||
|
FadeGameState(game, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level3_Unload(struct Game *game) {
|
void Level3_Unload(struct Game *game) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*! \file Level4.c
|
/*! \file level4.c
|
||||||
* \brief Level 4 code.
|
* \brief Level 4 code.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
|
@ -21,9 +21,16 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "../gamestates/level.h"
|
#include "../gamestates/level.h"
|
||||||
#include "modules/moonwalk.h"
|
#include "modules/moonwalk.h"
|
||||||
|
#include "../timeline.h"
|
||||||
|
#include "actions.h"
|
||||||
|
#include "level4.h"
|
||||||
|
|
||||||
void Level4_Load(struct Game *game) {
|
void Level4_Load(struct Game *game) {
|
||||||
Moonwalk_Load(game);
|
Moonwalk_Load(game);
|
||||||
|
TM_AddAction(&DoMoonwalk, NULL, "moonwalk");
|
||||||
|
TM_AddAction(&PassLevel, NULL, "passlevel");
|
||||||
|
TM_AddBackgroundAction(&ShowMeter, NULL, 0, "showmeter");
|
||||||
|
FadeGameState(game, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level4_Unload(struct Game *game) {
|
void Level4_Unload(struct Game *game) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*! \file Level5.c
|
/*! \file level5.c
|
||||||
* \brief Level 5 code.
|
* \brief Level 5 code.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
|
@ -21,9 +21,16 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "../gamestates/level.h"
|
#include "../gamestates/level.h"
|
||||||
#include "modules/moonwalk.h"
|
#include "modules/moonwalk.h"
|
||||||
|
#include "../timeline.h"
|
||||||
|
#include "actions.h"
|
||||||
|
#include "level5.h"
|
||||||
|
|
||||||
void Level5_Load(struct Game *game) {
|
void Level5_Load(struct Game *game) {
|
||||||
Moonwalk_Load(game);
|
Moonwalk_Load(game);
|
||||||
|
TM_AddAction(&DoMoonwalk, NULL, "moonwalk");
|
||||||
|
TM_AddAction(&PassLevel, NULL, "passlevel");
|
||||||
|
TM_AddBackgroundAction(&ShowMeter, NULL, 0, "showmeter");
|
||||||
|
FadeGameState(game, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level5_Unload(struct Game *game) {
|
void Level5_Unload(struct Game *game) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*! \file Level6.c
|
/*! \file level6.c
|
||||||
* \brief Level 6 code.
|
* \brief Level 6 code.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
|
@ -21,9 +21,14 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "../gamestates/level.h"
|
#include "../gamestates/level.h"
|
||||||
#include "modules/moonwalk.h"
|
#include "modules/moonwalk.h"
|
||||||
|
#include "../timeline.h"
|
||||||
|
#include "actions.h"
|
||||||
|
#include "level6.h"
|
||||||
|
|
||||||
void Level6_Load(struct Game *game) {
|
void Level6_Load(struct Game *game) {
|
||||||
Moonwalk_Load(game);
|
Moonwalk_Load(game);
|
||||||
|
TM_AddBackgroundAction(&PassLevel, NULL, 5000, "passlevel");
|
||||||
|
FadeGameState(game, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level6_Unload(struct Game *game) {
|
void Level6_Unload(struct Game *game) {
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "../../actions.h"
|
#include "../../actions.h"
|
||||||
#include "../../../gamestates/level.h"
|
#include "../../../gamestates/level.h"
|
||||||
|
|
||||||
|
// TODO: make it configurable and move to generic actions
|
||||||
bool Accelerate(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
bool Accelerate(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
||||||
if (state != TM_ACTIONSTATE_RUNNING) return false;
|
if (state != TM_ACTIONSTATE_RUNNING) return false;
|
||||||
game->level.speed+=0.000015;
|
game->level.speed+=0.000015;
|
||||||
|
@ -32,6 +32,7 @@ bool Accelerate(struct Game *game, struct TM_Action *action, enum TM_ActionState
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: make it configurable and move to generic actions
|
||||||
bool Walk(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
bool Walk(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
||||||
if (state == TM_ACTIONSTATE_INIT) action->arguments = NULL;
|
if (state == TM_ACTIONSTATE_INIT) action->arguments = NULL;
|
||||||
if (state != TM_ACTIONSTATE_RUNNING) return false;
|
if (state != TM_ACTIONSTATE_RUNNING) return false;
|
||||||
|
@ -42,9 +43,10 @@ bool Walk(struct Game *game, struct TM_Action *action, enum TM_ActionState state
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: make it configurable and move to generic actions
|
||||||
bool Move(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
bool Move(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
||||||
if (state != TM_ACTIONSTATE_RUNNING) return false;
|
if (state != TM_ACTIONSTATE_RUNNING) return false;
|
||||||
game->level.speed=0.00035;
|
game->level.speed=0.000345;
|
||||||
if (game->level.st_pos<0.275) return false;
|
if (game->level.st_pos<0.275) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,36 +23,30 @@
|
||||||
#include "../../gamestates/level.h"
|
#include "../../gamestates/level.h"
|
||||||
#include "moonwalk.h"
|
#include "moonwalk.h"
|
||||||
|
|
||||||
void Moonwalk_Logic(struct Game *game) {
|
// TODO: use Walk action instead
|
||||||
|
bool DoMoonwalk(struct Game *game, struct TM_Action *action, enum TM_ActionState state) {
|
||||||
|
if (state == TM_ACTIONSTATE_INIT) {
|
||||||
|
SelectDerpySpritesheet(game, "walk");
|
||||||
|
game->level.sheet_speed_modifier = 0.94;
|
||||||
|
game->level.moonwalk.derpy_pos = -0.2;
|
||||||
|
}
|
||||||
|
else if (state == TM_ACTIONSTATE_RUNNING) {
|
||||||
game->level.moonwalk.derpy_pos=game->level.moonwalk.derpy_pos+0.00092;
|
game->level.moonwalk.derpy_pos=game->level.moonwalk.derpy_pos+0.00092;
|
||||||
game->level.moonwalk.derpy_frame_tmp++;
|
if (game->level.moonwalk.derpy_pos>1) {
|
||||||
if (game->level.moonwalk.derpy_frame_tmp%3==0) {
|
return true;
|
||||||
if (game->level.moonwalk.derpy_frame_tmp%5==0) game->level.moonwalk.derpy_frame++;
|
|
||||||
if (game->level.moonwalk.derpy_frame_tmp%22==21) game->level.moonwalk.derpy_frame--;
|
|
||||||
game->level.moonwalk.derpy_frame++;
|
|
||||||
if (game->level.moonwalk.derpy_frame>=24) game->level.moonwalk.derpy_frame=0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Moonwalk_Logic(struct Game *game) {}
|
||||||
|
|
||||||
void Moonwalk_Draw(struct Game *game) {
|
void Moonwalk_Draw(struct Game *game) {
|
||||||
al_set_target_bitmap(game->level.derpy);
|
al_set_target_bitmap(game->level.derpy);
|
||||||
al_clear_to_color(al_map_rgba(0,0,0,0));
|
al_clear_to_color(al_map_rgba(0,0,0,0));
|
||||||
al_draw_bitmap_region(*(game->level.derpy_sheet),al_get_bitmap_width(game->level.derpy)*(game->level.moonwalk.derpy_frame%6),al_get_bitmap_height(game->level.derpy)*(game->level.moonwalk.derpy_frame/6),al_get_bitmap_width(game->level.derpy), al_get_bitmap_height(game->level.derpy),0,0,0);
|
al_draw_bitmap_region(*(game->level.derpy_sheet),al_get_bitmap_width(game->level.derpy)*(game->level.sheet_pos%6),al_get_bitmap_height(game->level.derpy)*(game->level.sheet_pos/6),al_get_bitmap_width(game->level.derpy), al_get_bitmap_height(game->level.derpy),0,0,0);
|
||||||
al_set_target_bitmap(al_get_backbuffer(game->display));
|
al_set_target_bitmap(al_get_backbuffer(game->display));
|
||||||
|
|
||||||
if (game->level.moonwalk.derpy_pos>1) {
|
|
||||||
game->level.moonwalk.derpy_pos=-1;
|
|
||||||
Level_Passed(game);
|
|
||||||
UnloadGameState(game);
|
|
||||||
if (game->level.current_level<6) {
|
|
||||||
game->gamestate = GAMESTATE_LOADING;
|
|
||||||
game->loadstate = GAMESTATE_MAP;
|
|
||||||
} else {
|
|
||||||
game->gamestate = GAMESTATE_LOADING;
|
|
||||||
game->loadstate = GAMESTATE_ABOUT;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
al_draw_scaled_bitmap(game->level.stage,0,0,al_get_bitmap_width(game->level.stage),al_get_bitmap_height(game->level.stage),0,0,game->viewportWidth, game->viewportHeight,0);
|
al_draw_scaled_bitmap(game->level.stage,0,0,al_get_bitmap_width(game->level.stage),al_get_bitmap_height(game->level.stage),0,0,game->viewportWidth, game->viewportHeight,0);
|
||||||
al_draw_bitmap(game->level.derpy, game->level.moonwalk.derpy_pos*game->viewportWidth, game->viewportHeight*0.95-al_get_bitmap_height(game->level.derpy), ALLEGRO_FLIP_HORIZONTAL);
|
al_draw_bitmap(game->level.derpy, game->level.moonwalk.derpy_pos*game->viewportWidth, game->viewportHeight*0.95-al_get_bitmap_height(game->level.derpy), ALLEGRO_FLIP_HORIZONTAL);
|
||||||
al_draw_textf(game->font, al_map_rgb(255,255,255), game->viewportWidth/2, game->viewportHeight/2.2, ALLEGRO_ALIGN_CENTRE, "Level %d: Not implemented yet!", game->level.current_level);
|
al_draw_textf(game->font, al_map_rgb(255,255,255), game->viewportWidth/2, game->viewportHeight/2.2, ALLEGRO_ALIGN_CENTRE, "Level %d: Not implemented yet!", game->level.current_level);
|
||||||
|
@ -60,12 +54,8 @@ void Moonwalk_Draw(struct Game *game) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Moonwalk_Load(struct Game *game) {
|
void Moonwalk_Load(struct Game *game) {
|
||||||
SelectDerpySpritesheet(game, "walk");
|
game->level.moonwalk.derpy_pos = 0;
|
||||||
game->level.moonwalk.derpy_frame = 0;
|
|
||||||
game->level.moonwalk.derpy_frame_tmp = 0;
|
|
||||||
game->level.moonwalk.derpy_pos = -0.2;
|
|
||||||
al_play_sample_instance(game->level.music);
|
al_play_sample_instance(game->level.music);
|
||||||
FadeGameState(game, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Moonwalk_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {}
|
void Moonwalk_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {}
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
#include "../../main.h"
|
#include "../../main.h"
|
||||||
|
#include "../../timeline.h"
|
||||||
|
|
||||||
|
bool DoMoonwalk(struct Game *game, struct TM_Action *action, enum TM_ActionState state);
|
||||||
void Moonwalk_Draw(struct Game *game);
|
void Moonwalk_Draw(struct Game *game);
|
||||||
void Moonwalk_Logic(struct Game *game);
|
void Moonwalk_Logic(struct Game *game);
|
||||||
void Moonwalk_Preload(struct Game *game);
|
void Moonwalk_Preload(struct Game *game);
|
||||||
|
|
|
@ -93,8 +93,6 @@ struct Spritesheet {
|
||||||
|
|
||||||
/*! \brief Resources used by Moonwalk level module. */
|
/*! \brief Resources used by Moonwalk level module. */
|
||||||
struct Moonwalk {
|
struct Moonwalk {
|
||||||
int derpy_frame; /*!< Current frame of Derpy animation. */
|
|
||||||
int derpy_frame_tmp; /*!< Counter used to slow down Derpy animation. */
|
|
||||||
double derpy_pos; /*!< Position of Derpy on screen. */
|
double derpy_pos; /*!< Position of Derpy on screen. */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -145,7 +143,6 @@ struct Level {
|
||||||
ALLEGRO_SAMPLE *sample; /*!< Sample with background music. */
|
ALLEGRO_SAMPLE *sample; /*!< Sample with background music. */
|
||||||
ALLEGRO_SAMPLE_INSTANCE *music; /*!< Sample instance with background music. */
|
ALLEGRO_SAMPLE_INSTANCE *music; /*!< Sample instance with background music. */
|
||||||
unsigned int music_pos; /*!< Position of sample instance. Used when pausing game. */
|
unsigned int music_pos; /*!< Position of sample instance. Used when pausing game. */
|
||||||
ALLEGRO_BITMAP *owl; /*!< Owlicious bitmap. */
|
|
||||||
ALLEGRO_BITMAP *background; /*!< Bitmap of the background layer of the scene. */
|
ALLEGRO_BITMAP *background; /*!< Bitmap of the background layer of the scene. */
|
||||||
ALLEGRO_BITMAP *stage; /*!< Bitmap of the stage layer of the scene. */
|
ALLEGRO_BITMAP *stage; /*!< Bitmap of the stage layer of the scene. */
|
||||||
ALLEGRO_BITMAP *foreground; /*!< Bitmap of the foreground layer of the scene. */
|
ALLEGRO_BITMAP *foreground; /*!< Bitmap of the foreground layer of the scene. */
|
||||||
|
@ -159,6 +156,9 @@ struct Level {
|
||||||
bool debug_show_sprite_frames; /*!< When true, displays colorful borders around spritesheets and their active areas. */
|
bool debug_show_sprite_frames; /*!< When true, displays colorful borders around spritesheets and their active areas. */
|
||||||
struct Spritesheet* derpy_sheets; /*!< List of spritesheets of Derpy character. */
|
struct Spritesheet* derpy_sheets; /*!< List of spritesheets of Derpy character. */
|
||||||
//struct Spritesheet* pony_sheets; /*!< List of spritesheets of character rescued by Derpy. */
|
//struct Spritesheet* pony_sheets; /*!< List of spritesheets of character rescued by Derpy. */
|
||||||
|
struct {
|
||||||
|
ALLEGRO_BITMAP *owl; /*!< Owlicious bitmap. */
|
||||||
|
} level1; /*!< Resources used by level 1. */
|
||||||
struct Moonwalk moonwalk; /*!< Moonwalk module data. */
|
struct Moonwalk moonwalk; /*!< Moonwalk module data. */
|
||||||
struct Dodger dodger; /*!< Dodger module data. */
|
struct Dodger dodger; /*!< Dodger module data. */
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue