/** * @brief Load callback for savegames in XML Format * @param[in] parent XML Node structure, where we get the information from */ bool INT_LoadXML (xmlNode_t *parent) { xmlNode_t *node; xmlNode_t *interestsNode = XML_GetNode(parent, SAVE_INTERESTS); bool success = true; ccs.lastInterestIncreaseDelay = XML_GetInt(interestsNode, SAVE_INTERESTS_LASTINCREASEDELAY, 0); ccs.lastMissionSpawnedDelay = XML_GetInt(interestsNode, SAVE_INTERESTS_LASTMISSIONSPAWNEDDELAY, 0); ccs.overallInterest = XML_GetInt(interestsNode, SAVE_INTERESTS_OVERALL, 0); Com_RegisterConstList(saveInterestConstants); for (node = XML_GetNode(interestsNode, SAVE_INTERESTS_INTEREST); node; node = XML_GetNextNode(node, interestsNode, SAVE_INTERESTS_INTEREST)) { const char *categoryId = XML_GetString(node, SAVE_INTERESTS_ID); int cat; if (!Com_GetConstInt(categoryId, (int*) &cat)) { Com_Printf("Invalid interest category '%s'\n", categoryId); success = false; break; } ccs.interest[cat]= XML_GetInt(node, SAVE_INTERESTS_VAL, 0); } Com_UnregisterConstList(saveInterestConstants); return success; }
static void testConstInt (void) { const constListEntry_t list[] = { {"namespace::power", 1}, {"namespace::speed", 2}, {"namespace::accuracy", 3}, {"namespace::mind", 4}, {"namespace::close", 5}, {"namespace::heavy", 6}, {"namespace::assault", 7}, {"namespace::sniper", 8}, {"namespace::explosive", 9}, {"namespace::hp", 10}, {NULL, -1} }; const constListEntry_t list2[] = { {"namespace2::soldier", 0}, {"namespace2::scientist", 1}, {"namespace2::worker", 2}, {"namespace2::pilot", 3}, {NULL, -1} }; int out; Com_RegisterConstInt("namespace::variable", 1); CU_ASSERT(Com_UnregisterConstVariable("namespace::variable")); Com_RegisterConstInt("namespace::variable", 1); CU_ASSERT(Com_UnregisterConstVariable("namespace::variable")); Com_RegisterConstInt("namespace::variable2", 2); Com_RegisterConstInt("namespace::variable3", 3); Com_RegisterConstInt("namespace::variable4", 4); Com_RegisterConstInt("namespace::variable5", 5); Com_RegisterConstInt("namespace::variable6", 6); Com_RegisterConstInt("namespace2::variable2", 10); out = 0; CU_ASSERT_TRUE(Com_GetConstInt("namespace2::variable2", &out)); CU_ASSERT_EQUAL(out, 10); out = 0; CU_ASSERT_TRUE(Com_GetConstInt("namespace::variable2", &out)); CU_ASSERT_EQUAL(out, 2); out = 0; CU_ASSERT_TRUE(Com_GetConstInt("variable2", &out)); CU_ASSERT_EQUAL(out, 10); CU_ASSERT_STRING_EQUAL(Com_GetConstVariable("namespace", 2), "variable2"); CU_ASSERT(Com_UnregisterConstVariable("namespace2::variable2")); CU_ASSERT(Com_UnregisterConstVariable("namespace::variable2")); CU_ASSERT(Com_UnregisterConstVariable("namespace::variable3")); CU_ASSERT(Com_UnregisterConstVariable("namespace::variable4")); CU_ASSERT(Com_UnregisterConstVariable("namespace::variable5")); CU_ASSERT(Com_UnregisterConstVariable("namespace::variable6")); CU_ASSERT(!Com_UnregisterConstVariable("namespace::variable")); CU_ASSERT(!Com_UnregisterConstVariable("namespace::variable2")); CU_ASSERT(!Com_UnregisterConstVariable("namespace::variable3")); CU_ASSERT(!Com_UnregisterConstVariable("namespace::variable4")); CU_ASSERT(!Com_UnregisterConstVariable("namespace::variable5")); CU_ASSERT(!Com_UnregisterConstVariable("namespace::variable6")); Com_RegisterConstList(list); out = 0; CU_ASSERT_TRUE(Com_GetConstInt("sniper", &out)); CU_ASSERT_EQUAL(out, 8); CU_ASSERT_TRUE(Com_UnregisterConstList(list)); out = 0; CU_ASSERT_FALSE(Com_GetConstInt("sniper", &out)); Com_RegisterConstList(list2); Com_RegisterConstList(list); CU_ASSERT_TRUE(Com_UnregisterConstList(list)); out = 0; CU_ASSERT(Com_GetConstInt("pilot", &out)); CU_ASSERT_EQUAL(out, 3); Com_UnregisterConstList(list2); }