Program Listing for File player_inventory.c

Return to documentation for file (server/game_events/player_inventory.c)

#include <stdio.h>

#include "client/client.h"
#include "handler.h"

static
const char *INVENTORY_RESSOURCE_NAMES[RES_COUNT] = {
    "food",
    "linemate",
    "deraumere",
    "sibur",
    "mendiane",
    "phiras",
    "thystame"
};

bool player_inventory_handler(server_t *srv, const event_t *event)
{
    client_state_t *cs = event_get_client(srv, event);
    uint32_t *slots = cs->inv.qnts;

    if (cs == nullptr)
        return false;
    if (event->arg_count != 1)
        return append_to_output(srv, cs, "ko\n"), true;
    vappend_to_output(srv, cs, "[");
    for (size_t i = 0; i < RES_COUNT; i++) {
        if (i)
            vappend_to_output(srv, cs, ", ");
        vappend_to_output(srv, cs, "%s %u",
            INVENTORY_RESSOURCE_NAMES[i], slots[i]);
    }
    vappend_to_output(srv, cs, "]\n");
    return true;
}