Exemplo n.º 1
0
static int createunit_read(trigger * t, gamedata *data)
{
    createunit_data *td = (createunit_data *)t->data.v;
    variant var;
    int result = AT_READ_OK;
    var = read_faction_reference(data);
    if (var.i > 0) {
        td->f = findfaction(var.i);
        if (!td->f) {
            ur_add(var, &td->f, resolve_faction);
        }
    }
    else {
        result = AT_READ_FAIL;
    }
    // read_reference(&td->f, store, read_faction_reference, resolve_faction);

    read_reference(&td->r, data, read_region_reference,
        RESOLVE_REGION(data->version));
    td->race = (const struct race *)read_race_reference(data->store).v;
    if (!td->race) {
        result = AT_READ_FAIL;
    }
    READ_INT(data->store, &td->number);
    return result;
}
Exemplo n.º 2
0
static int createunit_read(trigger * t, struct storage *store)
{
    createunit_data *td = (createunit_data *)t->data.v;

    int uc =
        read_reference(&td->f, store, read_faction_reference, resolve_faction);
    int rc =
        read_reference(&td->r, store, read_region_reference,
        RESOLVE_REGION(global.data_version));
    td->race = (const struct race *)read_race_reference(store).v;

    if (uc == 0 && rc == 0) {
        if (!td->f || !td->r)
            return AT_READ_FAIL;
    }
    READ_INT(store, &td->number);

    return AT_READ_OK;
}