diff --git a/src/console/console.c b/src/console/console.c index a36df9a10..f8d11c456 100644 --- a/src/console/console.c +++ b/src/console/console.c @@ -207,6 +207,7 @@ int console_init() { con->output_pos = 0; con->output_overflowing = 0; con->histpos = -1; + con->histpos_changed = 0; list_create(&con->history); hashmap_create(&con->cmds, 8); menu_background_create(&con->background, 322, 101); diff --git a/src/controller/keyboard.c b/src/controller/keyboard.c index 3b0691ed5..f7f13fe89 100644 --- a/src/controller/keyboard.c +++ b/src/controller/keyboard.c @@ -77,6 +77,7 @@ int keyboard_binds_key(controller *ctrl, SDL_Event *event) { void keyboard_create(controller *ctrl, keyboard_keys *keys, int delay) { keyboard *k = malloc(sizeof(keyboard)); k->keys = keys; + k->last = 0; ctrl->data = k; ctrl->type = CTRL_TYPE_KEYBOARD; ctrl->poll_fun = &keyboard_poll; diff --git a/src/game/scenes/arena.c b/src/game/scenes/arena.c index 91ad85135..041e42c49 100644 --- a/src/game/scenes/arena.c +++ b/src/game/scenes/arena.c @@ -636,8 +636,14 @@ void arena_free(scene *scene) { //game_player_set_ctrl(player, NULL); controller_set_repeat(game_player_get_ctrl(player), 0); + for (int j = 0; j < 4; j++) { + if (j < ceil(local->rounds / 2.0f)) { + free(local->player_rounds[i][j]); + } + } } + textbutton_free(&local->title_button); textbutton_free(&local->return_button); textslider_free(&local->sound_slider); diff --git a/src/game/scenes/cutscene.c b/src/game/scenes/cutscene.c index 2848def44..40cf0a14a 100644 --- a/src/game/scenes/cutscene.c +++ b/src/game/scenes/cutscene.c @@ -77,7 +77,9 @@ void cutscene_render_overlay(scene *scene) { } void cutscene_free(scene *scene) { - free(scene_get_userdata(scene)); + cutscene_local *local = scene_get_userdata(scene); + free(local->text); + free(local); } void cutscene_startup(scene *scene, int id, int *m_load, int *m_repeat) { diff --git a/src/game/scenes/vs.c b/src/game/scenes/vs.c index 674556f16..9ebcc987f 100644 --- a/src/game/scenes/vs.c +++ b/src/game/scenes/vs.c @@ -65,6 +65,7 @@ void vs_free(scene *scene) { game_player *player2 = game_state_get_player(scene->gs, 1); dialog_free(&local->quit_dialog); + dialog_free(&local->too_pathetic_dialog); surface_free(&local->arena_select_bg); object_free(&local->player1_portrait); object_free(&local->player2_portrait); diff --git a/src/game/utils/score.c b/src/game/utils/score.c index 37555469d..a0bda0225 100644 --- a/src/game/utils/score.c +++ b/src/game/utils/score.c @@ -117,12 +117,12 @@ void chr_score_tick(chr_score *score) { if (t->age > SLIDER_HANG_TIME) { t->position -= 0.01f; } + lastage = t->age++; if(t->position < 0.0f) { score->score += t->points; free(t->text); list_delete(&score->texts, &it); } - lastage = t->age++; } }