void Func_ModifyAbilityScore (CGameObject *ob, char *value) { int abil, val; CNWSCreature *cre = (CNWSCreature *)ob; if (ob == NULL || (cre = ob->vtable->AsNWSCreature(ob)) == NULL || cre->cre_stats == NULL || sscanf(value, "%d %d", &abil, &val) != 2) { snprintf(value, strlen(value), "-1"); return; } switch (abil) { case ABILITY_STRENGTH: CNWSCreatureStats__SetSTRBase(cre->cre_stats, cre->cre_stats->cs_str + val); snprintf(value, strlen(value), "%d", cre->cre_stats->cs_str); break; case ABILITY_DEXTERITY: CNWSCreatureStats__SetDEXBase(cre->cre_stats, cre->cre_stats->cs_dex + val); snprintf(value, strlen(value), "%d", cre->cre_stats->cs_dex); break; case ABILITY_CONSTITUTION: CNWSCreatureStats__SetCONBase(cre->cre_stats, cre->cre_stats->cs_con + val, 0); snprintf(value, strlen(value), "%d", cre->cre_stats->cs_con); break; case ABILITY_INTELLIGENCE: CNWSCreatureStats__SetINTBase(cre->cre_stats, cre->cre_stats->cs_int + val); snprintf(value, strlen(value), "%d", cre->cre_stats->cs_int); break; case ABILITY_WISDOM: CNWSCreatureStats__SetWISBase(cre->cre_stats, cre->cre_stats->cs_wis + val); snprintf(value, strlen(value), "%d", cre->cre_stats->cs_wis); break; case ABILITY_CHARISMA: CNWSCreatureStats__SetCHABase(cre->cre_stats, cre->cre_stats->cs_cha + val); snprintf(value, strlen(value), "%d", cre->cre_stats->cs_cha); break; } }
void CNWSCreatureStats_s::SetCHABase(uint8_t CHABase) { CNWSCreatureStats__SetCHABase(this, CHABase); }