From dcb70999683a59796d61f6e5c9c771e527c9978a Mon Sep 17 00:00:00 2001 From: rexim Date: Sun, 9 Dec 2018 01:16:05 +0700 Subject: [PATCH] (#550) Count player jumps on Lisp side --- levels/level-01.txt | 7 +++++-- levels/platforms.txt | 7 +++++-- levels/player.lisp | 5 ++++- src/game/level.c | 6 ------ src/game/level.h | 2 -- src/game/level/player.c | 10 ---------- src/game/level/player.h | 2 -- src/game/level_script.c | 18 ------------------ 8 files changed, 14 insertions(+), 43 deletions(-) diff --git a/levels/level-01.txt b/levels/level-01.txt index 4b3187b8..b3551d6b 100644 --- a/levels/level-01.txt +++ b/levels/level-01.txt @@ -1,9 +1,12 @@ fffda5 28.578053 -456.51523 ff8080 -4 +7 (set args '()) +(set jump-count 0) + (defun on-jump () - (when (> (get-player-jump-count) 1) + (set jump-count (+ jump-count 1)) + (when (> jump-count 1) (hide-label "label_space_to_jump"))) 21 -656.11383 191.77144 2545.4624 1595.238 483737 diff --git a/levels/platforms.txt b/levels/platforms.txt index eccf87bc..83af85e4 100644 --- a/levels/platforms.txt +++ b/levels/platforms.txt @@ -1,9 +1,12 @@ 073642 117.10616 417.59192 b58900 -4 +7 (set args '()) +(set jump-count 0) + (defun on-jump () - (when (> (get-player-jump-count) 1) + (set jump-count (+ jump-count 1)) + (when (> jump-count 1) (hide-label "label_space_to_jump"))) 22 0 658.81897 1617.7523 1014.819 657b83 diff --git a/levels/player.lisp b/levels/player.lisp index 769adc2c..ab46c22f 100644 --- a/levels/player.lisp +++ b/levels/player.lisp @@ -1,3 +1,6 @@ +(set jump-count 0) + (defun on-jump () - (when (> (get-player-jump-count) 1) + (set jump-count (+ jump-count 1)) + (when (> jump-count 1) (hide-label "label_space_to_jump"))) diff --git a/src/game/level.c b/src/game/level.c index 10e8c593..238dc2dd 100644 --- a/src/game/level.c +++ b/src/game/level.c @@ -415,12 +415,6 @@ void level_show_goal(Level *level, const char *goal_id) goals_show(level->goals, goal_id); } -long int level_player_jump_count(Level *level) -{ - assert(level); - return player_jump_count(level->player); -} - void level_hide_label(Level *level, const char *label_id) { assert(level); diff --git a/src/game/level.h b/src/game/level.h index 07594405..bd4be72f 100644 --- a/src/game/level.h +++ b/src/game/level.h @@ -40,6 +40,4 @@ void level_show_goal(Level *level, const char *goal_id); void level_hide_label(Level *level, const char *label_id); -long int level_player_jump_count(Level *level); - #endif // LEVEL_H_ diff --git a/src/game/level/player.c b/src/game/level/player.c index faab5e2f..ecbc19dd 100644 --- a/src/game/level/player.c +++ b/src/game/level/player.c @@ -36,7 +36,6 @@ struct Player { Script *script; int jump_threshold; - int jump_count; Color color; Vec checkpoint; @@ -103,7 +102,6 @@ Player *create_player_from_line_stream(LineStream *line_stream, Level *level) } player->jump_threshold = 0; - player->jump_count = 0; player->color = color; player->checkpoint = vec(x, y); player->play_die_cue = 0; @@ -226,8 +224,6 @@ void player_jump(Player *player) if (script_has_scope_value(player->script, "on-jump")) { script_eval(player->script, "(on-jump)"); } - - player->jump_count++; } } @@ -335,9 +331,3 @@ bool player_overlaps_rect(const Player *player, rect, rigid_rect_hitbox( player->alive_body)); } - -long int player_jump_count(const Player *player) -{ - assert(player); - return player->jump_count; -} diff --git a/src/game/level/player.h b/src/game/level/player.h index 1284a531..1b394df4 100644 --- a/src/game/level/player.h +++ b/src/game/level/player.h @@ -57,6 +57,4 @@ void player_apply_force(Player *player, Vec force); Rigid_rect *player_rigid_rect(Player *player, const char *id); -long int player_jump_count(const Player *player); - #endif // PLAYER_H_ diff --git a/src/game/level_script.c b/src/game/level_script.c index a423f0eb..3e9a79a0 100644 --- a/src/game/level_script.c +++ b/src/game/level_script.c @@ -110,19 +110,6 @@ show_label(void *param, Gc *gc, struct Scope *scope, struct Expr args) return not_implemented(gc); } -static struct EvalResult -get_player_jump_count(void *param, Gc *gc, struct Scope *scope, struct Expr args) -{ - assert(param); - assert(gc); - assert(scope); - (void) args; - - Level *level = (Level*)param; - return eval_success( - NUMBER(gc, level_player_jump_count(level))); -} - void load_level_library(Gc *gc, struct Scope *scope, Level *level) { set_scope_value( @@ -150,9 +137,4 @@ void load_level_library(Gc *gc, struct Scope *scope, Level *level) scope, SYMBOL(gc, "hide-label"), NATIVE(gc, hide_label, level)); - set_scope_value( - gc, - scope, - SYMBOL(gc, "get-player-jump-count"), - NATIVE(gc, get_player_jump_count, level)); } -- 2.44.0