int main(int argc, char* argv[] ) { game_ game; char* buffer = new char[MAX_CHARS]; init(game,buffer); delete[] buffer; while(game.running) { system("cls"); processModule(game); } delAll(game); system("cls"); return 0; }
void DroidDeedImplementation::updateCraftingValues(CraftingValues* values, bool firstUpdate) { /* * Values available: Range: * */ String key; ManagedReference<DroidComponent*> comp = NULL; HashTableIterator<String, ManagedReference<DroidComponent*> > iterator = modules.iterator(); for(int i = 0; i < modules.size(); ++i) { iterator.getNextKeyAndValue(key, comp); if (comp) { comp->destroyObjectFromWorld(true); comp->destroyObjectFromDatabase(true); } } modules.removeAll(); overallQuality = values->getCurrentPercentage("power_level"); // effectiveness if (overallQuality < 0) overallQuality = 0.1; combatRating = values->getCurrentValue("cmbt_module"); if (combatRating < 0) combatRating = 0; // @TODO Add crafting values, this should adjust toHit and Speed based on droid ham, also // we need to stack modules if they are stackable. // walk all components and ensure we have all modules that are stackable there. ManagedReference<ManufactureSchematic*> manufact = values->getManufactureSchematic(); for (int i = 0; i < manufact->getSlotCount(); ++i) { // Droid Component Slots Reference<IngredientSlot* > iSlot = manufact->getSlot(i); if (iSlot->isComponentSlot()) { ComponentSlot* cSlot = cast<ComponentSlot*>(iSlot.get()); ManagedReference<TangibleObject*> tano = cSlot->getPrototype(); ManagedReference<DroidComponent*> component = cast<DroidComponent*>( tano.get()); // only check modules if (component != NULL) { if (component->isSocketCluster()) { // pull out the objects ManagedReference<SceneObject*> craftingComponents = component->getSlottedObject("crafted_components"); if(craftingComponents != NULL) { SceneObject* satchel = craftingComponents->getContainerObject(0); for (int i = 0; i < satchel->getContainerObjectsSize(); ++i) { ManagedReference<SceneObject*> sceno = satchel->getContainerObject(i); if (sceno != NULL) { // now we have the componet used in this socket item ManagedReference<DroidComponent*> sub = cast<DroidComponent*>( sceno.get()); if (sub != NULL) { DataObjectComponentReference* data = sub->getDataObjectComponent(); BaseDroidModuleComponent* module = NULL; if(data != NULL && data->get() != NULL && data->get()->isDroidModuleData() ){ module = cast<BaseDroidModuleComponent*>(data->get()); } if (module == NULL) { continue; } processModule(module,sceno->getServerObjectCRC()); } } } } } else { DataObjectComponentReference* data = component->getDataObjectComponent(); BaseDroidModuleComponent* module = NULL; if(data != NULL && data->get() != NULL && data->get()->isDroidModuleData() ){ module = cast<BaseDroidModuleComponent*>(data->get()); } if (module == NULL) { continue; } processModule(module,tano->getServerObjectCRC()); } } } } // module stacking is completed! }