void remove_units(int id, army_t a_army) { attach_state(); players[id].army.light -= a_army.light; players[id].army.heavy -= a_army.heavy; players[id].army.cavalry -= a_army.cavalry; save_state(); }
void FileSystemDevice::exec2(ObjHook &hook,Packet<uint8,Sys::AsyncFileSystem::FileExt> packet,StrLen dir,StrLen program) { if( !attach_state(hook,packet) ) return; Packet<uint8,Sys::AsyncFileSystem::FileExt,Exec2Ext> packet2=packet.pushExt<Exec2Ext>(); packet2.pushCompleteFunction(function_complete_exec2()); dev->exec2(packet2.forgetExt<1>(),dir,program); }
void FileSystemDevice::getFileList(ObjHook &hook,Packet<uint8,Sys::AsyncFileSystem::FileExt> packet,StrLen path) { if( !attach_state(hook,packet) ) return; Packet<uint8,Sys::AsyncFileSystem::FileExt,GetFileListExt> packet2=packet.pushExt<GetFileListExt>(); packet2.pushCompleteFunction(function_complete_getFileList()); dev->getFileList(packet2.forgetExt<1>(),path); }
void add_unit(int id, army_type_t type) { attach_state(); switch (type) { case LIGHT: { players[id].army.light += 1; break; } case HEAVY: { players[id].army.heavy += 1; break; } case CAVALRY: { players[id].army.cavalry += 1; break; } case WORKERS: { players[id].army.workers += 1; break; } default: break; } save_state(); }
void increment_resources(int player_id) { attach_state(); const int workers_count = players[player_id].army.workers; players[player_id].resources += RESOURCES_STEP + (workers_count * 5); save_state(); }
void remove_resources(int id, int resources) { attach_state(); players[id].resources -= resources; save_state(); }