Nicer menu background
This commit is contained in:
parent
ee26110871
commit
8def916504
|
@ -292,6 +292,13 @@ end
|
||||||
|
|
||||||
local module = {}
|
local module = {}
|
||||||
|
|
||||||
|
function module.add_full_lighting(map)
|
||||||
|
check_add_decoration(map, 4, 3, lightDecor.candle2)
|
||||||
|
check_add_decoration(map, 11, 3, lightDecor.candle2)
|
||||||
|
check_add_decoration(map, 4, 9, lightDecor.candle2)
|
||||||
|
check_add_decoration(map, 11, 9, lightDecor.candle2)
|
||||||
|
end
|
||||||
|
|
||||||
function module.build_coridoor_room(map, room)
|
function module.build_coridoor_room(map, room)
|
||||||
local exits = {
|
local exits = {
|
||||||
up = false,
|
up = false,
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
local room_builder = require "data/maproombuilder"
|
||||||
|
local monster_gen = require "data/monstergen"
|
||||||
|
|
||||||
|
map = create_map(CURRENT_LEVEL) -- 'map' needs to be global
|
||||||
|
|
||||||
|
room_builder.load_textures(map)
|
||||||
|
local room = room_builder.create_room()
|
||||||
|
|
||||||
|
set_current_room(map, 0, 0)
|
||||||
|
room_builder.build_square_room(map, room)
|
||||||
|
monster_gen.add_monster_to_room(map, 0, 0);
|
||||||
|
room_builder.add_full_lighting(map);
|
41
src/main.c
41
src/main.c
|
@ -32,11 +32,13 @@ static unsigned int cLevel = 1;
|
||||||
static float deltaTime = 1.0;
|
static float deltaTime = 1.0;
|
||||||
static double renderScale = 1.0;
|
static double renderScale = 1.0;
|
||||||
static Menu *mainMenu = NULL;
|
static Menu *mainMenu = NULL;
|
||||||
|
static Timer *menuTimer = NULL;
|
||||||
static GameState gGameState;
|
static GameState gGameState;
|
||||||
static Camera gCamera;
|
static Camera gCamera;
|
||||||
static SDL_Rect gameViewport;
|
static SDL_Rect gameViewport;
|
||||||
static SDL_Rect bottomGuiViewport;
|
static SDL_Rect bottomGuiViewport;
|
||||||
static SDL_Rect rightGuiViewport;
|
static SDL_Rect rightGuiViewport;
|
||||||
|
static SDL_Rect menuViewport;
|
||||||
|
|
||||||
static void resetGame(void);
|
static void resetGame(void);
|
||||||
|
|
||||||
|
@ -117,6 +119,13 @@ initViewports(void)
|
||||||
|
|
||||||
rightGuiViewport = (SDL_Rect) { GAME_VIEW_WIDTH, 0,
|
rightGuiViewport = (SDL_Rect) { GAME_VIEW_WIDTH, 0,
|
||||||
RIGHT_GUI_WIDTH, RIGHT_GUI_HEIGHT };
|
RIGHT_GUI_WIDTH, RIGHT_GUI_HEIGHT };
|
||||||
|
|
||||||
|
menuViewport = (SDL_Rect) {
|
||||||
|
(SCREEN_WIDTH - GAME_VIEW_WIDTH)/2,
|
||||||
|
(SCREEN_HEIGHT - GAME_VIEW_HEIGHT)/2,
|
||||||
|
GAME_VIEW_WIDTH,
|
||||||
|
GAME_VIEW_HEIGHT
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
@ -129,6 +138,7 @@ initGame(void)
|
||||||
item_builder_init(gRenderer);
|
item_builder_init(gRenderer);
|
||||||
gPointer = pointer_create(gRenderer);
|
gPointer = pointer_create(gRenderer);
|
||||||
particle_engine_init();
|
particle_engine_init();
|
||||||
|
menuTimer = timer_create();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -165,19 +175,29 @@ initMainMenu(void)
|
||||||
|
|
||||||
mainMenu = menu_create();
|
mainMenu = menu_create();
|
||||||
|
|
||||||
|
if (gMap)
|
||||||
|
map_destroy(gMap);
|
||||||
|
|
||||||
|
gMap = map_lua_generator_single_room__run(cLevel, gRenderer);
|
||||||
|
|
||||||
for (unsigned int i = 0; i < 2; ++i) {
|
for (unsigned int i = 0; i < 2; ++i) {
|
||||||
|
int hcenter;
|
||||||
|
|
||||||
Sprite *s1 = sprite_create();
|
Sprite *s1 = sprite_create();
|
||||||
sprite_load_text_texture(s1, "assets/GUI/SDS_8x8.ttf", 0, 20);
|
sprite_load_text_texture(s1, "assets/GUI/SDS_8x8.ttf", 0, 20);
|
||||||
texture_load_from_text(s1->textures[0], menu_items[i].label,
|
texture_load_from_text(s1->textures[0], menu_items[i].label,
|
||||||
C_DEFAULT, gRenderer);
|
C_DEFAULT, gRenderer);
|
||||||
s1->pos = (Position) { 200, 100 + (i*50) };
|
|
||||||
|
hcenter = (SCREEN_WIDTH/2) - (s1->textures[0]->dim.width/2);
|
||||||
|
s1->pos = (Position) { hcenter, 200 + (i*50) };
|
||||||
s1->fixed = true;
|
s1->fixed = true;
|
||||||
|
|
||||||
Sprite *s2 = sprite_create();
|
Sprite *s2 = sprite_create();
|
||||||
sprite_load_text_texture(s2, "assets/GUI/SDS_8x8.ttf", 0, 20);
|
sprite_load_text_texture(s2, "assets/GUI/SDS_8x8.ttf", 0, 20);
|
||||||
texture_load_from_text(s2->textures[0], menu_items[i].label,
|
texture_load_from_text(s2->textures[0], menu_items[i].label,
|
||||||
C_HOVER, gRenderer);
|
C_HOVER, gRenderer);
|
||||||
s2->pos = (Position) { 200, 100 + (i*50) };
|
|
||||||
|
s2->pos = (Position) { hcenter, 200 + (i*50) };
|
||||||
s2->fixed = true;
|
s2->fixed = true;
|
||||||
|
|
||||||
menu_item_add(mainMenu, s1, s2, menu_items[i].callback);
|
menu_item_add(mainMenu, s1, s2, menu_items[i].callback);
|
||||||
|
@ -328,11 +348,27 @@ run_game(void)
|
||||||
static void
|
static void
|
||||||
run_menu(void)
|
run_menu(void)
|
||||||
{
|
{
|
||||||
|
if (!timer_started(menuTimer))
|
||||||
|
timer_start(menuTimer);
|
||||||
|
|
||||||
|
roommatrix_populate_from_map(gRoomMatrix, gMap);
|
||||||
|
roommatrix_build_lightmap(gRoomMatrix);
|
||||||
|
if (timer_get_ticks(menuTimer) > 1000) {
|
||||||
|
timer_stop(menuTimer);
|
||||||
|
timer_start(menuTimer);
|
||||||
|
map_move_monsters(gMap, gRoomMatrix);
|
||||||
|
}
|
||||||
|
|
||||||
SDL_SetRenderDrawColor(gRenderer, 0, 0, 0, 0);
|
SDL_SetRenderDrawColor(gRenderer, 0, 0, 0, 0);
|
||||||
SDL_RenderClear(gRenderer);
|
SDL_RenderClear(gRenderer);
|
||||||
|
SDL_RenderSetViewport(gRenderer, &menuViewport);
|
||||||
|
map_render(gMap, &gCamera);
|
||||||
|
roommatrix_render_lightmap(gRoomMatrix, &gCamera);
|
||||||
|
|
||||||
SDL_RenderSetViewport(gRenderer, NULL);
|
SDL_RenderSetViewport(gRenderer, NULL);
|
||||||
menu_render(mainMenu, &gCamera);
|
menu_render(mainMenu, &gCamera);
|
||||||
pointer_render(gPointer, &gCamera);
|
pointer_render(gPointer, &gCamera);
|
||||||
|
|
||||||
SDL_RenderPresent(gRenderer);
|
SDL_RenderPresent(gRenderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,6 +441,7 @@ void close(void)
|
||||||
pointer_destroy(gPointer);
|
pointer_destroy(gPointer);
|
||||||
item_builder_close();
|
item_builder_close();
|
||||||
particle_engine_close();
|
particle_engine_close();
|
||||||
|
timer_destroy(menuTimer);
|
||||||
|
|
||||||
SDL_DestroyRenderer(gRenderer);
|
SDL_DestroyRenderer(gRenderer);
|
||||||
SDL_DestroyWindow(gWindow);
|
SDL_DestroyWindow(gWindow);
|
||||||
|
|
|
@ -248,10 +248,10 @@ l_add_monster(lua_State *L)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Map* map_lua_generator_run(unsigned int level, SDL_Renderer *renderer)
|
static Map*
|
||||||
|
generate_map(unsigned int level, char *file, SDL_Renderer *renderer)
|
||||||
{
|
{
|
||||||
int status, result;
|
int status, result;
|
||||||
char file[] = "data/mapgen.lua";
|
|
||||||
|
|
||||||
info("Running lua map script: %s", file);
|
info("Running lua map script: %s", file);
|
||||||
|
|
||||||
|
@ -309,3 +309,17 @@ Map* map_lua_generator_run(unsigned int level, SDL_Renderer *renderer)
|
||||||
|
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map* map_lua_generator_single_room__run(unsigned int level, SDL_Renderer *renderer)
|
||||||
|
{
|
||||||
|
char file[] = "data/menumapgen.lua";
|
||||||
|
return generate_map(level, file, renderer);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map* map_lua_generator_run(unsigned int level, SDL_Renderer *renderer)
|
||||||
|
{
|
||||||
|
char file[] = "data/mapgen.lua";
|
||||||
|
return generate_map(level, file, renderer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,6 @@
|
||||||
#include "map.h"
|
#include "map.h"
|
||||||
|
|
||||||
Map* map_lua_generator_run(unsigned int level, SDL_Renderer *renderer);
|
Map* map_lua_generator_run(unsigned int level, SDL_Renderer *renderer);
|
||||||
|
Map* map_lua_generator_single_room__run(unsigned int level, SDL_Renderer *renderer);
|
||||||
|
|
||||||
#endif // MAP_LUA_H_
|
#endif // MAP_LUA_H_
|
||||||
|
|
Loading…
Reference in New Issue