aboutsummaryrefslogtreecommitdiff
path: root/analyzer/analyzer.c
diff options
context:
space:
mode:
authorMosder <xmosder12@gmail.com>2026-07-13 19:39:06 +0200
committerMosder <xmosder12@gmail.com>2026-07-13 19:39:06 +0200
commit2a45b1096325ac6743787b6f60fef4800223b2a6 (patch)
tree382bd561706ecc1d71b4db2d69e67a51b1b0a566 /analyzer/analyzer.c
parent32bb25cc2666809759371436a6450574b00c0e6d (diff)
feat: added basic parsing of fight results data
Diffstat (limited to 'analyzer/analyzer.c')
-rw-r--r--analyzer/analyzer.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/analyzer/analyzer.c b/analyzer/analyzer.c
index 5997c6d..03ecd2a 100644
--- a/analyzer/analyzer.c
+++ b/analyzer/analyzer.c
@@ -1,6 +1,7 @@
#include "analyzer.h"
#include <stdlib.h>
+#include <string.h>
#include "parser/parser.h"
#include "utils/tcp.h"
@@ -35,12 +36,41 @@ void analyzer_loop(TCPStream *stream, pcap_t *pcap_handle, void (*parsed_data_ha
}
}
+// prints fight resutls
+void print_fight_results(FightResults results) {
+ printf("Enemies:\n\t");
+ for (size_t i = 0; i < results.num_enemy; i++) {
+ EnemyResults enemy = results.enemy_results[i];
+ printf("%s (%d)%s", enemy.name, enemy.level, i < results.num_enemy - 1 ? ", " : "\n");
+ }
+ printf("Player rewards:\n");
+ for (size_t i = 0; i < results.num_friendly; i++) {
+ FriendlyResults friendly = results.friendly_results[i];
+ printf("\t%s (%d):\n", friendly.name, friendly.level);
+ printf("\t\texp: %d\n", friendly.exp);
+ printf("\t\tgold: %d\n", friendly.gold);
+ if (friendly.psycho > 0)
+ printf("\t\tpsycho: %d\n", friendly.psycho);
+ if (strlen(friendly.items) > 0)
+ printf("\t\titems: %s\n", friendly.items);
+ if (strlen(friendly.gear) > 0)
+ printf("\t\tgear: %s\n", friendly.gear);
+ if (strlen(friendly.drifs) > 0)
+ printf("\t\tdrifs: %s\n", friendly.drifs);
+ if (friendly.splinters > 0)
+ printf("\t\tsplinters: %d\n", friendly.splinters);
+ if (friendly.saturation > 0)
+ printf("\t\tsaturation: %d (%s)\n", friendly.saturation, friendly.saturation_type);
+ }
+ printf("\n");
+}
+
// file analyzer parsed data handler
void file_parsed_data_handler(ParsedData *parsed_data, size_t n_parsed_data) {
for (size_t i = 0; i < n_parsed_data; i++) {
switch (parsed_data[i].data_type) {
case TYPE_FIGHT_RESULTS:
- printf("Fight results\n");
+ print_fight_results(*(FightResults *)parsed_data[i].data);
break;
}
}