Example #1
0
void at_deprecate(const char * name, int(*reader)(attrib *, void *, struct storage *))
{
    char buffer[64];
    size_t len = strlen(name);
    len = cb_new_kv(name, len, &reader, sizeof(reader), buffer);
    cb_insert(&cb_deprecated, buffer, len);
}
void add_function(const char *symbol, evalfun parse)
{
    char buffer[64];
    size_t len = strlen(symbol);

    assert(len + 1 + sizeof(parse) <= sizeof(buffer));
    len = cb_new_kv(symbol, len, &parse, sizeof(parse), buffer);
    cb_insert(&functions, buffer, len);
}
Example #3
0
static void st_register(ship_type *stype) {
    size_t len;
    char data[64];

    selist_push(&shiptypes, (void *)stype);

    len = cb_new_kv(stype->_name, strlen(stype->_name), &stype, sizeof(stype), data);
    assert(len <= sizeof(data));
    cb_insert(&cb_shiptypes, data, len);
}
Example #4
0
static critbit_tree * special_resources(void)
{
    static critbit_tree cb = CRITBIT_TREE();
    if (!cb.root) {
        const char * special[] = { "seed", "sapling", "tree", "grave", "chaos", 0 };
        char buffer[32];
        int i;
        for (i = 0; special[i]; ++i) {
            size_t len = strlen(special[i]);
            len = cb_new_kv(special[i], len, &i, sizeof(int), buffer);
            cb_insert(&cb, buffer, len);
        }
    }
    return &cb;
}
Example #5
0
int stats_count(const char *stat, int delta) {
    void * match;
    if (cb_find_prefix_str(&stats, stat, &match, 1, 0) == 0) {
        size_t len;
        char data[128];
        len = cb_new_kv(stat, strlen(stat), &delta, sizeof(delta), data);
        cb_insert(&stats, data, len);
        return delta;
    }
    else {
        int *num;
        cb_get_kv_ex(match, (void **)&num);
        return *num += delta;
    }
}