diff options
Diffstat (limited to 'jouer.c')
-rw-r--r-- | jouer.c | 80 |
1 files changed, 47 insertions, 33 deletions
@@ -11,29 +11,29 @@ static inline void highlight_current_character(struct team_t *team) { - struct character_t *chr = &team->chrs[team->chr_cur]; + struct chr_t *chr = &team->chrs[team->chr_cur]; chr->surf = chr->red_surf; } static inline void unhighlight_prev_character(struct team_t *team) { - struct character_t *chr = &team->chrs[team->chr_cur]; + struct chr_t *chr = &team->chrs[team->chr_cur]; chr->surf = chr->def_surf; } -static struct character_t *find_next_team_member(const struct character_t *current) +static struct chr_t *find_next_team_member(const struct chr_t *current) { for (int i = current->idx + 1; i < current->team->chr_cnt; ++i) { - struct character_t *chr = ¤t->team->chrs[i]; + struct chr_t *chr = ¤t->team->chrs[i]; if (chr->alive) return chr; } for (int i = 0; i <= current->idx; ++i) { - struct character_t *chr = ¤t->team->chrs[i]; + struct chr_t *chr = ¤t->team->chrs[i]; if (chr->alive) return chr; @@ -42,17 +42,17 @@ static struct character_t *find_next_team_member(const struct character_t *curre return NULL; } -static struct character_t *find_prev_team_member(const struct character_t *current) +static struct chr_t *find_prev_team_member(const struct chr_t *current) { for (int i = current->idx - 1; i >= 0; --i) { - struct character_t *chr = ¤t->team->chrs[i]; + struct chr_t *chr = ¤t->team->chrs[i]; if (chr->alive) return chr; } for (int i = current->team->chr_cnt - 1; i >= current->idx; ++i) { - struct character_t *chr = ¤t->team->chrs[i]; + struct chr_t *chr = ¤t->team->chrs[i]; if (chr->alive) return chr; @@ -61,7 +61,7 @@ static struct character_t *find_prev_team_member(const struct character_t *curre return NULL; } -static struct character_t *get_first_alive_character(const struct team_t *team) +static struct chr_t *get_first_alive_character(const struct team_t *team) { for (int i = 0; i < team->chr_cnt; ++i) { if (team->chrs[i].alive) @@ -72,10 +72,11 @@ static struct character_t *get_first_alive_character(const struct team_t *team) } /* function called after an action has been performed */ -static void update_current_character(struct team_t *t1, struct team_t *t2, struct team_t **playing) +static void update_current_character(struct team_t *t1, struct team_t *t2, + struct team_t **playing) { struct team_t *current; - struct character_t *next; + struct chr_t *next; unhighlight_prev_character(*playing); @@ -119,8 +120,8 @@ static void update_current_character(struct team_t *t1, struct team_t *t2, struc } /* TODO the code of this function should be split in different functions */ -static -struct target_t select_default_target(const struct action_params_t *params, + static struct target_t +select_default_target(const struct action_params_t *params, enum target_type_t type) { struct team_t *enemy_team; @@ -159,14 +160,14 @@ struct target_t select_default_target(const struct action_params_t *params, abort(); } -static -enum action_state_t select_target(struct action_params_t *params, const struct action_t *action) +static enum action_state_t +select_target(struct action_params_t *params, const struct action_t *action) { SURFACES *surfaces = params->surfaces; POSITIONS *positions = params->positions; /* select our own character because he exists no matter what */ struct target_t target = select_default_target(params, action->target); - struct character_t *new_selection; + struct chr_t *new_selection; struct team_t *team; SDL_Event event; @@ -288,7 +289,8 @@ enum action_state_t select_target(struct action_params_t *params, const struct a case SDLK_f: update_selected_target(surfaces, positions, NULL); - (*action->f)(surfaces, positions, params->src, &target, action->data); + (*action->f)(surfaces, positions, params->src, &target, + action->data); return ACTION_PERFORMED; default: @@ -297,14 +299,15 @@ enum action_state_t select_target(struct action_params_t *params, const struct a } } -static -enum action_state_t dig_entry(const struct entry_t *entries, int cnt_entries, struct action_params_t *params) +static enum action_state_t dig_entry(const struct entry_t *entries, + int cnt_entries, struct action_params_t *params) { SDL_Event event; const struct entry_t *target; int selection = 0; - update_list_entries(params->surfaces, params->positions, entries, cnt_entries, selection); + update_list_entries(params->surfaces, params->positions, entries, + cnt_entries, selection); while (SDL_PollEvent(&event)); for (;;) { @@ -320,12 +323,14 @@ enum action_state_t dig_entry(const struct entry_t *entries, int cnt_entries, st case SDLK_k: case SDLK_UP: selection = (selection > 0) ? selection - 1 : cnt_entries - 1; - update_list_entries(params->surfaces, params->positions, entries, cnt_entries, selection); + update_list_entries(params->surfaces, params->positions, + entries, cnt_entries, selection); break; case SDLK_j: case SDLK_DOWN: selection = (selection < cnt_entries - 1) ? selection + 1 : 0; - update_list_entries(params->surfaces, params->positions, entries, cnt_entries, selection); + update_list_entries(params->surfaces, params->positions, + entries, cnt_entries, selection); break; case SDLK_f: case SDLK_RETURN: @@ -333,25 +338,31 @@ enum action_state_t dig_entry(const struct entry_t *entries, int cnt_entries, st if (!target->children_cnt) { enum action_state_t state; - update_list_entries(params->surfaces, params->positions, entries, cnt_entries, -1); + update_list_entries(params->surfaces, params->positions, + entries, cnt_entries, -1); state = select_target(params, &target->action); if (state == ACTION_PERFORMED) return ACTION_PERFORMED; - } else { - if (dig_entry(target->children, target->children_cnt, params) == ACTION_PERFORMED) + } else { + if (dig_entry(target->children, target->children_cnt, + params) == ACTION_PERFORMED) + { return ACTION_PERFORMED; + } } - update_list_entries(params->surfaces, params->positions, entries, cnt_entries, selection); + update_list_entries(params->surfaces, params->positions, + entries, cnt_entries, selection); default: break; } } } -static enum action_state_t character_play_turn(struct action_params_t *params) +static enum action_state_t +character_play_turn(struct action_params_t *params) { params->src->defensive = false; @@ -366,10 +377,12 @@ static enum action_state_t character_play_turn(struct action_params_t *params) static void hook_post_action(struct action_params_t *params) { - struct character_t *chr = params->src; + struct chr_t *chr = params->src; if (chr->alive && chr->poisoned) { - damage_target_hp(params->surfaces, params->positions, chr, chr->max_hp / 4); + int damages = chr->max_hp / 4; + + damage_target_hp(params->surfaces, params->positions, chr, damages); SDL_Flip(params->surfaces->screen); @@ -377,7 +390,8 @@ static void hook_post_action(struct action_params_t *params) } } -int Fjouer (SURFACES *surfaces, POSITIONS *positions, struct team_t *t1, struct team_t *t2) +int Fjouer(SURFACES *surfaces, POSITIONS *positions, + struct team_t *t1, struct team_t *t2) { struct team_t *playing_team; unsigned int continuer=1; @@ -419,7 +433,8 @@ int Fjouer (SURFACES *surfaces, POSITIONS *positions, struct team_t *t1, struct SDL_Delay(1000); - SDL_BlitSurface(surfaces->background, &positions->degats, surfaces->screen, &positions->degats); + SDL_BlitSurface(surfaces->background, &positions->degats, + surfaces->screen, &positions->degats); SDL_Flip(surfaces->Pecran); @@ -433,7 +448,7 @@ int Fjouer (SURFACES *surfaces, POSITIONS *positions, struct team_t *t1, struct break; } - // on vérifie à présent si on a gagné ou si on a perdu ! + /* TODO rewrite */ gagne=1; perdu=1; for (i = 0; i < t2->chr_cnt; i++) { @@ -445,7 +460,6 @@ int Fjouer (SURFACES *surfaces, POSITIONS *positions, struct team_t *t1, struct perdu=0; } - // la y'a des trucs a mettre pour si on gagne ou on perd parce que sa fait assez pitié :p if(perdu) { SDL_Delay(2000); |