Esempio n. 1
0
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);
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
local void UnloadData(Arena *arena)
{
	struct adata *ad = P_ARENA_DATA(arena, adkey);

	LLFree(ad->regions);
}