#pragma once

bool autocvar_lastlevel;

string _nextmap;
void Send_NextMap_To_Player(entity pl);
void Set_NextMap(string mapname);

// no reason for get_nextmap to be a function for now
// macro to not have an unnecessary function call stackframe
#define get_nextmap() _nextmap

bool autocvar_samelevel;
bool autocvar_sv_autoscreenshot;
string autocvar_sv_intermission_cdtrack;

bool intermission_running;
float intermission_exittime;
bool alreadychangedlevel;

int maplist_buffer;

string GetGametype();

string GetMapname();

void IntermissionThink(entity this);

void FixIntermissionClient(entity e);

void GotoNextMap(float reinit);

bool Map_IsRecent(string m);

bool Map_Check(string m, float pass);

int Maplist_Init(void);
void Maplist_Close();
string GetNextMap(void);

void Map_Goto_SetStr(string nextmapname);

void Map_Goto(float reinit);

void Map_MarkAsRecent(string m);

float DoNextMapOverride(float reinit);

string GotoMap(string m);
