-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlog.h
72 lines (62 loc) · 1.79 KB
/
log.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/**
* @file list.h
* @author Rafael G. de Paulo
* @date 27/11/17
*
* @brief implementacao da estrutura auxiliar que guarda
* a história de uma luta entre dois personagens
*
*/
#ifndef _WAR_LOG_H_
#define _WAR_LOG_H_
#include <stdbool.h>
#include <stdio.h>
#include "characters.h"
#include "tree.h"
/**
* @brief Registra as batalhas que ocorreram ao longo do torneio.
*
* Cada elemento t_log guarda informações sobre as lutas passadas,
* como os personagens envolvidos, a fase em que se enfrentaram
* e o atributo usado na ocasião.
*/
typedef struct {
Character* player1;
Character* player2;
int round;
Stat used_attr;
} t_log;
/**
* @brief Após a guerra terminar, a função imprime todas as lutas passadas.
*
* Pega um elemento da lista de logs e chama printLog, função que imprime um por um.
*
* @param log_list A lista com os registros
* @return Não há retorno.
*/
void show_log(lList* log_list);
/**
* @brief cria um log, alocado dinamicamente, e retorna seu endereço
*
* @param player1 endereço do primeiro player participando do combate
* @param player2 endereço do segundo player participando do combate
* @param round o numero do round em que a luta ocorreu
* @param used_attr o atributo usado
*
* @return t_log o endereço do log criado
*/
t_log* create_log(Character* player1, Character* player2, int round, Stat used_attr);
/**
* @brief imprime a informação do log informado
*
* @param log o endereço do log a ser imprimido
* @param printRound se é pra imprimir o numero do round ou não
*/
void printLog(t_log* log, bool printRound);
/**
* @brief libera a memoria alocada para um log
*
* @param fight_log o endereço do log a ser liberado
*/
void log_free(t_log* fight_log);
#endif /* _WAR_LOG_H_ */