From 07136c70f95d2fcefc745259637f42fbe041cfd7 Mon Sep 17 00:00:00 2001 From: Linus_Probert Date: Thu, 15 Mar 2018 16:30:41 +0100 Subject: [PATCH] Windy rooms affect player Left a possibility to make it affect projectiles. --- CMakeLists.txt | 1 + assets/Sounds/FX/dagger_pickup.wav | Bin 0 -> 138926 bytes data/maproombuilder.lua | 4 ++ src/item_builder.c | 2 +- src/map_lua.c | 23 ++++++++ src/map_room_modifiers.c | 41 ++++++++++++++ src/map_room_modifiers.h | 29 ++++++++++ src/mixer.c | 1 + src/mixer.h | 1 + src/particle_engine.c | 12 +++- src/player.c | 88 ++++++++++++----------------- src/position.c | 9 ++- src/projectile.c | 2 +- src/roommatrix.c | 1 + src/roommatrix.h | 4 +- src/vector2d.c | 8 ++- src/vector2d.h | 3 + 17 files changed, 166 insertions(+), 63 deletions(-) create mode 100644 assets/Sounds/FX/dagger_pickup.wav create mode 100644 src/map_room_modifiers.c diff --git a/CMakeLists.txt b/CMakeLists.txt index b1dc6f6..9a207d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,6 +119,7 @@ add_executable(breakhack src/skill src/projectile src/vector2d + src/map_room_modifiers ) target_link_libraries(breakhack diff --git a/assets/Sounds/FX/dagger_pickup.wav b/assets/Sounds/FX/dagger_pickup.wav new file mode 100644 index 0000000000000000000000000000000000000000..03f09b00bda6aa1e99dffd04ff1c20e73b6a3427 GIT binary patch literal 138926 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�hNbMRh0Qev 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 literal 0 HcmV?d00001 diff --git a/data/maproombuilder.lua b/data/maproombuilder.lua index d800435..6be0406 100644 --- a/data/maproombuilder.lua +++ b/data/maproombuilder.lua @@ -371,6 +371,10 @@ function module.build_square_room(map, room) if room.goal then add_level_exit(map); end + + if CURRENT_LEVEL > 2 and random(10) == 1 then + set_modifier(map, "WINDY"); + end end function module.load_textures(map) diff --git a/src/item_builder.c b/src/item_builder.c index 5a06dac..3ee41c6 100644 --- a/src/item_builder.c +++ b/src/item_builder.c @@ -70,7 +70,7 @@ pickup_dagger(Item *item, Player *player) { player->daggers += (Uint32) item->value; - mixer_play_effect(SWORD_HIT); + mixer_play_effect(DAGGER_PICKUP); if (item->value > 1) gui_log("You collect %u daggers", (Uint32) item->value); else diff --git a/src/map_lua.c b/src/map_lua.c index 7f52db0..3d73a13 100644 --- a/src/map_lua.c +++ b/src/map_lua.c @@ -89,6 +89,26 @@ SDL_Renderer* luaL_checksdlrenderer(lua_State *L) return renderer; } +static int +l_map_set_current_room_modifier(lua_State *L) +{ + const char *modifier; + + Map *map = luaL_checkmap(L, 1); + modifier = luaL_checkstring(L, 2); + + Room *room; + if (strcmp(modifier, "WINDY") == 0) { + room = map->rooms[map->currentRoom.x][map->currentRoom.y]; + room->modifier.type = RMOD_TYPE_WINDY; + room->modifier.data.wind.direction = VECTOR2D_LEFT; + } else { + luaL_error(L, "Unknown room modifier: %s", modifier); + return 1; + } + return 0; +} + static int l_map_set_current_room(lua_State *L) { @@ -379,6 +399,9 @@ generate_map(unsigned int level, const char *file, SDL_Renderer *renderer) lua_pushcfunction(L, l_map_set_current_room); lua_setglobal(L, "set_current_room"); + lua_pushcfunction(L, l_map_set_current_room_modifier); + lua_setglobal(L, "set_modifier"); + lua_pushcfunction(L, l_add_monster); lua_setglobal(L, "add_monster"); diff --git a/src/map_room_modifiers.c b/src/map_room_modifiers.c new file mode 100644 index 0000000..996102f --- /dev/null +++ b/src/map_room_modifiers.c @@ -0,0 +1,41 @@ +/* + * BreakHack - A dungeone crawler RPG + * Copyright (C) 2018 Linus Probert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include "map_room_modifiers.h" +#include "player.h" +#include "roommatrix.h" +#include "position.h" + +void +map_room_modifier_player_effect(Player *player, + RoomMatrix *matrix, + Vector2d *direction, + void (*move_cb)(Player*, RoomMatrix*, Vector2d)) +{ + Position matrixPos = position_to_matrix_coords(&player->sprite->pos); + if (matrix->modifier->type == RMOD_TYPE_WINDY + && !vector2d_equals(*direction, VECTOR2D_NODIR) + && matrixPos.x > 0 && matrixPos.x < MAP_ROOM_WIDTH-1 + && matrixPos.y > 0 && matrixPos.y < MAP_ROOM_HEIGHT-1) + { + if (!vector2d_is_opposite(*direction, matrix->modifier->data.wind.direction)) { + move_cb(player, matrix, matrix->modifier->data.wind.direction); + } + } +} diff --git a/src/map_room_modifiers.h b/src/map_room_modifiers.h index 70c5752..875dfb1 100644 --- a/src/map_room_modifiers.h +++ b/src/map_room_modifiers.h @@ -1,6 +1,29 @@ +/* + * BreakHack - A dungeone crawler RPG + * Copyright (C) 2018 Linus Probert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef MAP_ROOM_MODIFIERS_H_ #define MAP_ROOM_MODIFIERS_H_ +#include "vector2d.h" + +// Forward declares +typedef struct Player_t Player; +typedef struct RoomMatrix_t RoomMatrix; typedef enum RoomModifierType_e { RMOD_TYPE_NONE, @@ -20,4 +43,10 @@ typedef struct RoomModifierData_t { RoomModifierDataContainer data; } RoomModifierData; +void +map_room_modifier_player_effect(Player*, + RoomMatrix*, + Vector2d *direction, + void (*)(Player*, RoomMatrix*, Vector2d)); + #endif // MAP_ROOM_MODIFIERS_H_ diff --git a/src/mixer.c b/src/mixer.c index 6b4b869..34f71b4 100644 --- a/src/mixer.c +++ b/src/mixer.c @@ -79,6 +79,7 @@ load_effects(void) effects[PLAYER_HIT0] = load_effect("Sounds/FX/fistpunch_vocal_01.wav"); effects[PLAYER_HIT1] = load_effect("Sounds/FX/fistpunch_vocal_02.wav"); effects[PLAYER_HIT2] = load_effect("Sounds/FX/fistpunch_vocal_03.wav"); + effects[DAGGER_PICKUP] = load_effect("Sounds/FX/dagger_pickup.wav"); } void diff --git a/src/mixer.h b/src/mixer.h index 2a0d143..c3c2e28 100644 --- a/src/mixer.h +++ b/src/mixer.h @@ -53,6 +53,7 @@ typedef enum Fx_t { PLAYER_HIT0, PLAYER_HIT1, PLAYER_HIT2, + DAGGER_PICKUP, LAST_EFFECT } Fx; diff --git a/src/particle_engine.c b/src/particle_engine.c index ccf515e..db51487 100644 --- a/src/particle_engine.c +++ b/src/particle_engine.c @@ -200,7 +200,7 @@ particle_engine_speed_lines(Position pos, Dimension dim, bool horizontal) void particle_engine_wind(Vector2d direction) { - static SDL_Color color = { 255, 255, 255, 255 }; + static SDL_Color color = { 0, 0, 255, 255 }; unsigned int count = 5; Position pos = { 0, 0 }; @@ -218,8 +218,8 @@ particle_engine_wind(Vector2d direction) x = get_random(dim.width) + pos.x; y = get_random(dim.height) + pos.y; - w = get_random(2) + 1; - h = get_random(2) + 1; + w = get_random(2) + 2; + h = get_random(2) + 2; velocity = get_random(500) + 500; @@ -292,6 +292,9 @@ render_particle(Particle *p, Camera *cam) else pos = camera_to_camera_position(cam, &p->pos); + // Make the particles look visible on all surfaces + SDL_SetRenderDrawBlendMode(cam->renderer, SDL_BLENDMODE_MOD); + SDL_Rect box = { pos.x, pos.y, p->dim.width, p->dim.height }; SDL_SetRenderDrawColor(cam->renderer, p->color.r, @@ -299,6 +302,9 @@ render_particle(Particle *p, Camera *cam) p->color.b, p->color.a); SDL_RenderFillRect(cam->renderer, &box); + + // Reset the blend mode + SDL_SetRenderDrawBlendMode(cam->renderer, SDL_BLENDMODE_BLEND); } void diff --git a/src/player.c b/src/player.c index 481c1da..e279026 100644 --- a/src/player.c +++ b/src/player.c @@ -159,47 +159,30 @@ has_collided(Player *player, RoomMatrix *matrix) } static void -move_left(Player *player, RoomMatrix *matrix) +set_clip_for_direction(Player *player, Vector2d *direction) { - player->sprite->clip.y = 16; - player->sprite->pos.x -= TILE_DIMENSION; - if (has_collided(player, matrix)) - player->sprite->pos.x += TILE_DIMENSION; - else - player_step(player); + if (vector2d_equals(*direction, VECTOR2D_LEFT)) + player->sprite->clip.y = 16; + else if (vector2d_equals(*direction, VECTOR2D_RIGHT)) + player->sprite->clip.y = 32; + else if (vector2d_equals(*direction, VECTOR2D_UP)) + player->sprite->clip.y = 48; + else if (vector2d_equals(*direction, VECTOR2D_DOWN)) + player->sprite->clip.y = 0; } static void -move_right(Player *player, RoomMatrix *matrix) +move(Player *player, RoomMatrix *matrix, Vector2d direction) { - player->sprite->clip.y = 32; - player->sprite->pos.x += TILE_DIMENSION; - if (has_collided(player, matrix)) - player->sprite->pos.x -= TILE_DIMENSION; - else - player_step(player); -} - -static void -move_up(Player *player, RoomMatrix *matrix) -{ - player->sprite->clip.y = 48; - player->sprite->pos.y -= TILE_DIMENSION; - if (has_collided(player, matrix)) - player->sprite->pos.y += TILE_DIMENSION; - else - player_step(player); -} - -static void -move_down(Player *player, RoomMatrix *matrix) -{ - player->sprite->clip.y = 0; - player->sprite->pos.y += TILE_DIMENSION; - if (has_collided(player, matrix)) - player->sprite->pos.y -= TILE_DIMENSION; - else + set_clip_for_direction(player, &direction); + player->sprite->pos.x += TILE_DIMENSION * (int) direction.x; + player->sprite->pos.y += TILE_DIMENSION * (int) direction.y; + if (has_collided(player, matrix)) { + player->sprite->pos.x -= TILE_DIMENSION * (int) direction.x; + player->sprite->pos.y -= TILE_DIMENSION * (int) direction.y; + } else { player_step(player); + } } void @@ -219,24 +202,23 @@ static void handle_movement_input(Player *player, RoomMatrix *matrix, SDL_Event *event) { static unsigned int step = 1; - bool moved = false; + Vector2d direction = VECTOR2D_NODIR; + + if (keyboard_direction_press(LEFT, event)) + direction = VECTOR2D_LEFT; + if (keyboard_direction_press(RIGHT, event)) + direction = VECTOR2D_RIGHT; + if (keyboard_direction_press(UP, event)) + direction = VECTOR2D_UP; + if (keyboard_direction_press(DOWN, event)) + direction = VECTOR2D_DOWN; + + if (!vector2d_equals(direction, VECTOR2D_NODIR)) + move(player, matrix, direction); + + map_room_modifier_player_effect(player, matrix, &direction, move); + - if (keyboard_direction_press(LEFT, event)) { - move_left(player, matrix); - moved = true; - } - if (keyboard_direction_press(RIGHT, event)) { - move_right(player, matrix); - moved = true; - } - if (keyboard_direction_press(UP, event)) { - move_up(player, matrix); - moved = true; - } - if (keyboard_direction_press(DOWN, event)) { - move_down(player, matrix); - moved = true; - } #ifdef DEBUG if (keyboard_mod_press(SDLK_SPACE, KMOD_CTRL, event)) { Position pos = player->sprite->pos; @@ -247,7 +229,7 @@ handle_movement_input(Player *player, RoomMatrix *matrix, SDL_Event *event) } #endif // DEBUG - if (moved) { + if (!vector2d_equals(VECTOR2D_NODIR, direction)) { player->sprite->clip.x = 16*step; ++step; step = step % 4; diff --git a/src/position.c b/src/position.c index 2a0d387..cd0249e 100644 --- a/src/position.c +++ b/src/position.c @@ -19,7 +19,8 @@ #include "position.h" #include "defines.h" -Position position_to_matrix_coords(Position *src) +Position +position_to_matrix_coords(Position *src) { unsigned int room_px_width, room_px_height; Position pos; @@ -33,7 +34,8 @@ Position position_to_matrix_coords(Position *src) return pos; } -Position position_to_room_coords(Position *src) +Position +position_to_room_coords(Position *src) { unsigned int room_px_width, room_px_height; Position pos; @@ -53,7 +55,8 @@ position_equals(const Position *p1, const Position *p2) return p1->x == p2->x && p1->y == p2->y; } -bool position_in_room(Position *pos, Position *roomPos) +bool +position_in_room(Position *pos, Position *roomPos) { int room_px_width, room_px_height, room_x_px, room_y_px; diff --git a/src/projectile.c b/src/projectile.c index 838d98e..6810db7 100644 --- a/src/projectile.c +++ b/src/projectile.c @@ -78,7 +78,7 @@ projectile_update(Projectile *p, UpdateData *data) Position collisionPos = p->sprite->pos; if (p->velocity.x > 0) collisionPos.x += TILE_DIMENSION; - else if(p->velocity.y > 0) + if(p->velocity.y > 0) collisionPos.y += TILE_DIMENSION; Position roomPos = position_to_matrix_coords(&collisionPos); diff --git a/src/roommatrix.c b/src/roommatrix.c index 002b1ed..cd1e199 100644 --- a/src/roommatrix.c +++ b/src/roommatrix.c @@ -65,6 +65,7 @@ void roommatrix_populate_from_map(RoomMatrix *rm, Map *m) rm->roomPos = m->currentRoom; r = m->rooms[rm->roomPos.x][rm->roomPos.y]; + rm->modifier = &r->modifier; for (i = 0; i < MAP_ROOM_WIDTH; ++i) { for (j = 0; j < MAP_ROOM_HEIGHT; ++j) { diff --git a/src/roommatrix.h b/src/roommatrix.h index 16fc0c0..514dbf8 100644 --- a/src/roommatrix.h +++ b/src/roommatrix.h @@ -23,6 +23,7 @@ #include "defines.h" #include "position.h" #include "camera.h" +#include "map_room_modifiers.h" typedef struct Sprite_t Sprite; typedef struct Map_t Map; @@ -40,11 +41,12 @@ typedef struct { LinkedList *items; } RoomSpace; -typedef struct { +typedef struct RoomMatrix_t { RoomSpace spaces[MAP_ROOM_WIDTH][MAP_ROOM_HEIGHT]; Position roomPos; Position playerRoomPos; Position mousePos; + RoomModifierData *modifier; } RoomMatrix; RoomMatrix* roommatrix_create(void); diff --git a/src/vector2d.c b/src/vector2d.c index 5eb5cf5..9063577 100644 --- a/src/vector2d.c +++ b/src/vector2d.c @@ -4,4 +4,10 @@ bool vector2d_equals(Vector2d v1, Vector2d v2) { return v1.x == v2.x && v1.y == v2.y; -} \ No newline at end of file +} + +bool +vector2d_is_opposite(Vector2d v1, Vector2d v2) +{ + return (v1.x > 0 && v2.x < 0) ^ (v1.y > 0 && v2.y < 0); +} diff --git a/src/vector2d.h b/src/vector2d.h index 20f9fdb..d76a30e 100644 --- a/src/vector2d.h +++ b/src/vector2d.h @@ -35,4 +35,7 @@ typedef struct Vector2d_t { bool vector2d_equals(Vector2d, Vector2d); +bool +vector2d_is_opposite(Vector2d, Vector2d); + #endif // VECTOR2D_H_