local void UnloadData(Arena *arena) { struct adata *ad = P_ARENA_DATA(arena, adkey); LLEnum(ad->sectionList, afree); LLEnum(ad->warpSectionList, afree); LLFree(ad->sectionList); LLFree(ad->warpSectionList); }
int main() { _LLNode *Head = makeNode(1); int i = 0; for(i=2; i<5; i++) insert(&Head,i); Head = reverse(Head); print(Head); _LLNode *p2 = cutInHalf(Head); p2 = reverse(p2); print(Head); print(p2); interlace(Head,&p2); print(Head); print(p2); LLFree(Head); LLFree(p2); return 1; }
EXPORT int MM_hs_flagtime(int action, Imodman *mm_, Arena *arena) { MM_FUNC_HEADER(); if (action == MM_LOAD) { mm = mm_; GET_USUAL_INTERFACES(); REG_PARENA_DATA(); BREG_PPLAYER_DATA(); INIT_MUTEX(globalmutex); INIT_GLOBALINTERFACE(); REG_GLOBALINTERFACE(); return MM_OK; } else if (action == MM_UNLOAD) { UNREG_GLOBALINTERFACE(); DESTROY_MUTEX(globalmutex); UNREG_PARENA_DATA(); UNREG_PPLAYER_DATA(); Lfailload: RELEASE_USUAL_INTERFACES(); DO_RETURN(); } else if (action == MM_ATTACH) { ALLOC_ARENA_DATA(ad); ad->FlagTeams = LLAlloc(); ad->SpecFreq = cfg->GetInt(arena->cfg, "Team", "SpectatorFrequency", 8025); //Attached interfaces //Callbacks mm->RegCallback(CB_FLAGGAIN, FlagGain, arena); mm->RegCallback(CB_FLAGLOST, FlagLost, arena); mm->RegCallback(CB_WARZONEWIN, WarzoneWin, arena); mm->RegCallback(CB_SHIPFREQCHANGE, ShipFreqChange, arena); mm->RegCallback(CB_PLAYERACTION, PlayerAction, arena); //Timers ml->SetTimer(UpdateScores, 100, 100, arena, arena); //Commands cmd->AddCommand("flagtime", C_flagtime, arena, flagtime_help); return MM_OK; } else if (action == MM_DETACH) { //Timers ml->ClearTimer(UpdateScores, arena); Reset(arena); DEF_AD(arena); LLFree(ad->FlagTeams); //Callbacks mm->UnregCallback(CB_FLAGGAIN, FlagGain, arena); mm->UnregCallback(CB_FLAGLOST, FlagLost, arena); mm->UnregCallback(CB_WARZONEWIN, WarzoneWin, arena); mm->UnregCallback(CB_SHIPFREQCHANGE, ShipFreqChange, arena); mm->UnregCallback(CB_PLAYERACTION, PlayerAction, arena); //Commands cmd->RemoveCommand("flagtime", C_flagtime, arena); Lfailattach: //Attached interfaces FREE_ARENA_DATA(ad); DO_RETURN(); } return MM_FAIL; }
local void UnloadData(Arena *arena) { struct adata *ad = P_ARENA_DATA(arena, adkey); LLFree(ad->regions); }