bool ObjectManager::load_base(ROBJECT_TYPE::ENUM type, SlkTable& table) { switch (type) { case ROBJECT_TYPE::UNIT: load_unit(table); break; case ROBJECT_TYPE::ITEM: load_item(table); break; case ROBJECT_TYPE::DESTRUCTABLE: load_destructable(table); break; case ROBJECT_TYPE::BUFF: load_buff(table); break; case ROBJECT_TYPE::DOODAD: load_doodad(table); break; case ROBJECT_TYPE::ABILITY: load_ability(table); break; case ROBJECT_TYPE::UPGRADE: load_upgrde(table); break; default: assert(false); return false; } return true; }
void load_martial_art(JsonObject &jo) { martialart ma; JsonArray jsarr; ma.id = jo.get_string("id"); ma.name = _(jo.get_string("name").c_str()); ma.description = _(jo.get_string("description").c_str()); jsarr = jo.get_array("static_buffs"); while (jsarr.has_more()) { JsonObject jsobj = jsarr.next_object(); ma.static_buffs.push_back(load_buff(jsobj)); } jsarr = jo.get_array("onmove_buffs"); while (jsarr.has_more()) { JsonObject jsobj = jsarr.next_object(); ma.onmove_buffs.push_back(load_buff(jsobj)); } jsarr = jo.get_array("onhit_buffs"); while (jsarr.has_more()) { JsonObject jsobj = jsarr.next_object(); ma.onhit_buffs.push_back(load_buff(jsobj)); } jsarr = jo.get_array("onattack_buffs"); while (jsarr.has_more()) { JsonObject jsobj = jsarr.next_object(); ma.onattack_buffs.push_back(load_buff(jsobj)); } jsarr = jo.get_array("ondodge_buffs"); while (jsarr.has_more()) { JsonObject jsobj = jsarr.next_object(); ma.ondodge_buffs.push_back(load_buff(jsobj)); } jsarr = jo.get_array("onblock_buffs"); while (jsarr.has_more()) { JsonObject jsobj = jsarr.next_object(); ma.onblock_buffs.push_back(load_buff(jsobj)); } jsarr = jo.get_array("ongethit_buffs"); while (jsarr.has_more()) { JsonObject jsobj = jsarr.next_object(); ma.onblock_buffs.push_back(load_buff(jsobj)); } ma.techniques = jo.get_tags("techniques"); ma.leg_block = jo.get_int("leg_block", -1); ma.arm_block = jo.get_int("arm_block", -1); martialarts[ma.id] = ma; }