home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revista CD Expert 51
/
PCGamer51_17Demos.iso
/
games
/
CM
/
CyclingManagerDemoCangas.exe
/
CyclingManagerDemo
/
scripts
/
main.cnc
< prev
next >
Wrap
Text File
|
2001-07-09
|
32KB
|
987 lines
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
// Page member and ID init
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
func void PageInit()
{
// ToolBar
Object_Intro_InitMembers ();
TitleBar_init_members();
ToolBar_init_members();
Object_Menu_Principal_InitMembers();
Page_SinglePlayer_InitMembers();
Race_InitMembers();
Page_Manager_InitMembers();
Page_Team_Roaster_InitMembers();
Page_Tactic_InitMembers();
Page_Season_Calendar_InitMembers();
Page_Classification_InitMembers();
Page_Transfert_InitMembers();
Page_MultiPlayer_InitMembers();
PageAdmin_InitMembers();
oPageList[PAGE_INTRO].pnew = Object_Intro_Constructor;
oPageList[PAGE_INTRO].pdelete = Object_Intro_Destructor;
oPageList[PAGE_INTRO].iEscapeMode = G_iEscape_SkipIntro;
oPageList[PAGE_ADMIN].pnew = PageAdmin_Constructor;
oPageList[PAGE_ADMIN].pdelete = PageAdmin_Destructor;
oPageList[PAGE_ADMIN].iEscapeMode = G_iEscape_Login;
oPageList[PAGE_INRACE].pnew = Race_Constructor;
oPageList[PAGE_INRACE].pdelete = Race_Destructor;
oPageList[PAGE_INRACE].iEscapeMode = G_iEscape_Management;
//oPageList[PAGE_INRACE].ploaddata = Page_Race_LoadData;
oPageList[PAGE_SINGLE].pnew = Page_SinglePlayer_Constructor;
oPageList[PAGE_SINGLE].pdelete = Page_SinglePlayer_Destructor;
oPageList[PAGE_SINGLE].iEscapeMode = G_iEscape_Exit;
oPageList[PAGE_TEAM_ROASTER].pnew = Page_Team_Roaster_Constructor;
oPageList[PAGE_TEAM_ROASTER].pdelete = Page_Team_Roaster_Destructor;
oPageList[PAGE_TEAM_ROASTER].iEscapeMode = G_iEscape_Login;
oPageList[PAGE_TACTICS].pnew = Page_Tactic_Constructor;
oPageList[PAGE_TACTICS].pdelete = Page_Tactic_Destructor;
oPageList[PAGE_TACTICS].iEscapeMode = G_iEscape_Login;
oPageList[PAGE_TACTICS].psavedata = Page_Team_Tactic_SaveData;
oPageList[PAGE_SEASON_CALENDAR].pnew = Page_Season_Calendar_Constructor;
oPageList[PAGE_SEASON_CALENDAR].pdelete = Page_Season_Calendar_Destructor;
oPageList[PAGE_SEASON_CALENDAR].iEscapeMode = G_iEscape_Login;
oPageList[PAGE_SEASON_CLASSIFICATION].pnew = Page_Classification_Constructor;
oPageList[PAGE_SEASON_CLASSIFICATION].pdelete = Page_Classification_Destructor;
oPageList[PAGE_SEASON_CLASSIFICATION].iEscapeMode = G_iEscape_Login;
//oPageList[PAGE_NET_CLIENT].pnew = NetClient_Constructor;
//oPageList[PAGE_NET_CLIENT].pdelete = NetClient_Destructor;
oPageList[PAGE_MANAGER_PROFILE].pnew = Page_Manager_Constructor;
oPageList[PAGE_MANAGER_PROFILE].pdelete = Page_Manager_Destructor;
oPageList[PAGE_MANAGER_PROFILE].iEscapeMode = G_iEscape_Login;
oPageList[PAGE_TRANSFERT].pnew = Page_Transfert_Constructor;
oPageList[PAGE_TRANSFERT].pdelete = Page_Transfert_Destructor;
oPageList[PAGE_TRANSFERT].iEscapeMode = G_iEscape_Login;
oPageList[PAGE_MULTI].pnew = Page_MultiPlayer_Constructor;
oPageList[PAGE_MULTI].pdelete = Page_MultiPlayer_Destructor;
oPageList[PAGE_MULTI].iEscapeMode = G_iEscape_Exit;
}
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
//
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
func void DialogInit()
{
// init for each dialog box
Panel_Team_Cyclist_Info_InitMembers();
Dialog_Medical_InitMembers();
Dialog_Team_Tactic_WatchRacerList_InitMembers();
Dialog_Loading_Data_InitMembers();
Message_Box_InitMembers();
Dialog_Configuration_InitMembers();
Dialog_Stage_Infos_InitMembers();
Dialog_Transfert_InitMembers();
Dialbox_Login_InitMembers ();
Dialog_Game_Param_InitMembers();
Dialog_Credit_InitMembers();
// set constructors / destructors
oDialogList[DIALOG_INFO_CYCLISTS].pnew = Panel_Team_Cyclist_Info_Constructor;
oDialogList[DIALOG_INFO_CYCLISTS].pdelete = Panel_Team_Cyclist_Info_Destructor;
oDialogList[DIALOG_STAGE_INFOS].pnew = Dialog_Stage_Infos_Constructor;
oDialogList[DIALOG_STAGE_INFOS].pdelete = Dialog_Stage_Infos_Destructor;
oDialogList[DIALOG_TRANSFERT].pnew = Dialog_Transfert_Constructor;
oDialogList[DIALOG_TRANSFERT].pdelete = Dialog_Transfert_Destructor;
oDialogList[DIALOG_MEDICAL].pnew = Dialog_Medical_Constructor;
oDialogList[DIALOG_MEDICAL].pdelete = Dialog_Medical_Destructor;
oDialogList[DIALOG_TEAM_TACTIC_SURVEY].pnew = Dialog_Team_Tactic_WatchRacerList_Constructor;
oDialogList[DIALOG_TEAM_TACTIC_SURVEY].pdelete = Dialog_Team_Tactic_WatchRacerList_Destructor;
oDialogList[DIALOG_LOADING_DATA].pnew = Dialog_Loading_Data_Constructor;
oDialogList[DIALOG_LOADING_DATA].pdelete = Dialog_Loading_Data_Destructor;
oDialogList[DIALOG_MESSAGEBOX].pnew = Message_Box_Constructor;
oDialogList[DIALOG_MESSAGEBOX].pdelete = Message_Box_Destructor;
oDialogList[DIALOG_CONFIG].pnew = Dialog_Configuration_Constructor;
oDialogList[DIALOG_CONFIG].pdelete = Dialog_Configuration_Destructor;
oDialogList[DIALOG_LOGIN].pnew = Dialbox_Login_Constructor;
oDialogList[DIALOG_LOGIN].pdelete = Dialbox_Login_Destructor;
oDialogList[DIALOG_GAME_PARAM].pnew = Dialog_Game_Param_Constructor;
oDialogList[DIALOG_GAME_PARAM].pdelete = Dialog_Game_Param_Destructor;
oDialogList[DIALOG_CREDITS].pnew = Dialog_Credit_Constructor;
oDialogList[DIALOG_CREDITS].pdelete = Dialog_Credit_Destructor;
}
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
//Manager Event func
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
func i32x manager (i32x _iComponentID, i32x _iEventID)
{
if (_iComponentID == -1)
{
if(_iEventID == GUI_COMPONENT_KEYDOWN )
{
if (GetLastKey() == VK_Escape)
{
if (oManager.iWindowDialogID!=ID_NOT_CREATED) // destroy dialog
{
// debug : special demo
if(G_iDemoVersion)
{
ExitNow();
}
Manager_DestroyDialog();
return 1;
}
else if(oManager.iPageID != ID_NOT_CREATED) // Exit mode
{
if (oPageList[oManager.iPageID].iEscapeMode == G_iEscape_Management)
{
// debug : special demo
if(G_iDemoVersion)
{
ExitNow();
}
// Recursive call to load page news
LowLevelLoadPage(PAGE_ADMIN);
return 1;
}
else if (oPageList[oManager.iPageID].iEscapeMode == G_iEscape_SkipIntro)
{
// debug : special demo
//special looprun
if((G_iDemoVersion)||(G_iLoopRunVersion))
{
// stop video
CallDestructor(oPageList[oManager.iPageID].pdelete);
oManager.iWindowID = ID_NOT_CREATED;
LogueOffline(1,0);
}
else
{
if (g_oGameConfig.m_iInternet==0)
{
LoadPage(PAGE_SINGLE);
}
else
{
// ** internet **
LoadPage(PAGE_MULTI);
}
}
return 1;
}
}
}
// debug : special demo
if(G_iDebugVersion)
{
if (GetLastKey() == VK_F1) // Active or unactive the console
{
if(oManager.iConsoleID == -1)
{
InitConsole();
oManager.iConsoleID = InitObject("Console",oConsole.oFunc.pcreate, oConsole.oFunc.pevent);
SetComponentPosition(oManager.iConsoleID,300,250);
}
else
{
DeleteComponent(oManager.iConsoleID);
oManager.iConsoleID = -1;
}
}
}// debug : special demo
}
}
if (_iEventID==GUI_DESTROY_ME)
{
if (_iComponentID==oManager.iWindowDialogID)
{
Manager_DestroyDialog();
}
}
// *************************************
// Special loop
//mao debug crash with roll mouse !!!
if((G_iLoopRunVersion)&&(_iComponentID == oManager.iWindowID)&&(_iEventID == PAGE_ADMIN))
{
print("###################################### LOAD REQUEST BY PAGE : ");
println(itoa(_iComponentID));
Manager_LoadPage(_iEventID);
}
// **************************************
if(_iComponentID == oManager.iMenu_PrincipalID)
{
Manager_LoadPage(_iEventID);
}
if(oManager.iPageID == PAGE_INTRO)
{
if(_iComponentID == oManager.iWindowID)
{
Manager_LoadPage(_iEventID);
}
}
if(_iEventID == GUI_QUIT_GAME)
{
if(oManager.iPageID != ID_NOT_CREATED) // Exit mode
{
if (oPageList[oManager.iPageID].iEscapeMode == G_iEscape_Exit)
{
// stop podium sequence
CreateMessageBox(GetLocalizedFromKey(1554),g_iTypeOkCancelDialog,QuitGame_MessageBoxCallback); // Confirm quit game
return 0;
}
else if (oPageList[oManager.iPageID].iEscapeMode == G_iEscape_Management)
{
// debug : special demo
if(G_iDemoVersion)
{
ExitNow();
}
// Recursive call to load page news
LowLevelLoadPage(PAGE_ADMIN);
return 1;
}
else if (oPageList[oManager.iPageID].iEscapeMode == G_iEscape_Login)
{
// debug : special demo
if(G_iDemoVersion)
{
ExitNow();
}
// disconnect from menu server to allow new login
if (g_oMenuServer.m_oServer)
NetClient_Disconnect(g_oMenuServer.m_oServer);
// disconnect from gateway to allow new login
if (g_oLobby.m_oServer)
NetClient_Disconnect(g_oLobby.m_oServer);
// escape from internet
g_oGameConfig.m_iInternet=0;
return 1;
}
}
}
return 1;
}
// Quit game dialog box call back method
//----------------------------------------------------------------------------------------------------------------//
func void QuitGame_MessageBoxCallback(i32x _iResult)
{
if(_iResult == g_iTypeOkDialog)
{
if(oManager.iWindowID != ID_NOT_CREATED)
{
CallDestructor(oPageList[oManager.iPageID].pdelete);
oManager.iWindowID = ID_NOT_CREATED;
}
// Destroy join on local DB
vDestroyLocalDatabaseJoins();
// delete lobby joins
DestroyGatewayJoins();
// destroy local lobby
if (g_oGameConfig.m_iInternet == 0)
{
fnGameServer_Destroy();
}
// debug : special demo
if(G_iDemoVersion)
{
ExitNow();
}
//Save local database
SaveLocalDatabase();
if (g_oMenuServer.m_oServer)
NetClient_Disconnect(g_oMenuServer.m_oServer);
DestroyWaves();
Exit();
}
}
// vInitMenuBackground
// Create menu background in manager object
//----------------------------------------------------------------------------------------------------------------//
func void vInitMenuBackground()
{
if(oManager.m_cBackground == ID_NOT_CREATED)
{
// Init page background
oManager.m_cBackground = InitContainer(tBackground);
SetContainerSize(oManager.m_cBackground,800,600); // Fill all screen with background
}
if(oManager.m_cTopLeftBorder == ID_NOT_CREATED)
{
// Left border
oManager.m_cTopLeftBorder = InitContainer(t_panel_bordertopleft);
}
if(oManager.m_cTopLeftCenter == ID_NOT_CREATED)
{
// Left border
oManager.m_cTopLeftCenter = InitContainer(t_panel_bordertopleft);
SetContainerSprite(oManager.m_cTopLeftCenter,1,0);
SetContainerScaleY(oManager.m_cTopLeftCenter,489.0/125.0);
SetComponentPositionY(oManager.m_cTopLeftCenter,3);
}
if(oManager.m_cBottomLeftBorder == ID_NOT_CREATED)
{
oManager.m_cBottomLeftBorder = InitContainer(t_panel_borderbottomleft);
SetComponentPosition(oManager.m_cBottomLeftBorder,0,492);
}
if(oManager.m_cTitleBar == ID_NOT_CREATED)
{
oManager.m_cTitleBar = InitObject("Title Bar",oTitleBar.ofunc.pcreate,oTitleBar.ofunc.pevent);
SetComponentPosition(oManager.m_cTitleBar,oManager.iWindowPositionX,0);
Set_Title_Bar_Text(g_szNull);
}
if(oManager.iToolBar == ID_NOT_CREATED)
{
oManager.iToolBar = InitObject("Tool Bar",oToolBar.ofunc.pcreate,oToolBar.ofunc.pevent);
SetComponentPosition(oManager.iToolBar,0,574);
}
}
// vDeleteMenuBackground
// Delete background component inside manager
//----------------------------------------------------------------------------------------------------------------//
func void vDeleteMenuBackground()
{
if(oManager.m_cBackground != ID_NOT_CREATED)
{
DeleteComponent(oManager.m_cBackground);
oManager.m_cBackground = ID_NOT_CREATED;
}
if(oManager.m_cTopLeftBorder != ID_NOT_CREATED)
{
DeleteComponent(oManager.m_cTopLeftBorder);
oManager.m_cTopLeftBorder = ID_NOT_CREATED;
}
if(oManager.m_cTopLeftCenter != ID_NOT_CREATED)
{
DeleteComponent(oManager.m_cTopLeftCenter);
oManager.m_cTopLeftCenter = ID_NOT_CREATED;
}
if(oManager.m_cBottomLeftBorder != ID_NOT_CREATED)
{
DeleteComponent(oManager.m_cBottomLeftBorder);
oManager.m_cBottomLeftBorder = ID_NOT_CREATED;
}
if(oManager.m_cTitleBar != ID_NOT_CREATED)
{
DeleteComponent(oManager.m_cTitleBar);
oManager.m_cTitleBar = ID_NOT_CREATED;
oTitleBar.m_pthis = g_poNullComponent;
}
if(oManager.iToolBar != ID_NOT_CREATED)
{
DeleteComponent(oManager.iToolBar);
oManager.iToolBar = ID_NOT_CREATED;
oToolBar.m_pthis = g_poNullComponent;
}
}
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
//Menu Engine Create func
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
func void InitGui ()
{
var i32x i;
// init NULL string
g_szNull = "";
SetObjectSize(800,600);
oManager.iMenu_PrincipalID=ID_NOT_CREATED;
// oManager.iStartID=ID_NOT_CREATED;
// Init all pages
PageInit();
// init for all dialogs
DialogInit();
oManager.pThis = GetParserComponent();
// Init Menu Background
oManager.m_cBackground = ID_NOT_CREATED;
oManager.m_cTopLeftBorder = ID_NOT_CREATED;
oManager.m_cTopLeftCenter = ID_NOT_CREATED;
oManager.m_cBottomLeftBorder = ID_NOT_CREATED;
oManager.m_cTitleBar = ID_NOT_CREATED;
oManager.iToolBar = ID_NOT_CREATED;
// Init page
oManager.iWindowID = CallConstructor(oPageList[oManager.iPageID].pnew);
if(oManager.iPageID != PAGE_INTRO)
SetComponentPosition(oManager.iWindowID, oManager.iWindowPositionX, oManager.iWindowPositionY);
//Create Tool Bar
//var i32x id;
//oManager.iToolBar=InitObject("Tool Bar",oToolBar.ofunc.pcreate,oToolBar.ofunc.pevent);
//SetComponentPosition(oManager.iToolBar,130,570);
//Set_Tool_Bar_Text(g_szNull);
// oManager.iMenu_PrincipalID = InitObject(oMenu_Principal.szName, oMenu_Principal.oFunc.pcreate, oMenu_Principal.oFunc.pevent);
// SetComponentPosition(oManager.iMenu_PrincipalID, 0, 100);
}
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
//Menu Engine Init
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
func void SetLanguage(i32x _iLanguage)
{
var szx szColumnName;
g_oUser.m_iLanguage = _iLanguage;
// Update global join
szColumnName = "gene_sz_";
if(_iLanguage==LANGUAGE_ENGLISH)
szColumnName = strcat(szColumnName,"english");
if(_iLanguage==LANGUAGE_FRENCH)
szColumnName = strcat(szColumnName,"french");
if(_iLanguage==LANGUAGE_DUTCH)
szColumnName = strcat(szColumnName,"dutch");
if(_iLanguage==LANGUAGE_SPANISH)
szColumnName = strcat(szColumnName,"spanish");
if(_iLanguage==LANGUAGE_ITALIAN)
szColumnName = strcat(szColumnName,"italian");
if(_iLanguage==LANGUAGE_GERMAN)
szColumnName = strcat(szColumnName,"german");
// Destroy old join
if(g_oLocalJoins.m_iGameMenuString>0)
Join_Destructor(g_oLocalJoins.m_iGameMenuString);
if(g_oLocalJoins.m_iLocalizedString>0)
Join_Destructor(g_oLocalJoins.m_iLocalizedString);
if(g_oLocalJoins.m_iFormattedString>0)
Join_Destructor(g_oLocalJoins.m_iFormattedString);
// Reinit local join
g_oLocalJoins.m_iGameMenuString = Join_Constructor(DATABASE_LOCAL,strcat("STA_game_menu.game_strID_text.STA_localized_string.",szColumnName));
g_oLocalJoins.m_iLocalizedString = Join_Constructor(DATABASE_LOCAL,strcat("STA_localized_string.",szColumnName));
g_oLocalJoins.m_iFormattedString = Join_Constructor(DATABASE_LOCAL,strcat("STA_formated_string.",szColumnName));
}
func i32x GetLanguage()
{
return g_oUser.m_iLanguage;
}
func i32x Is3DDeviceInitProblem()
{
var FILE logfile;
var FILEBUF filebuf;
var szx szLine;
var i32x i;
logfile=fopen("device.log",3,1); // Read text mode
if(logfile)
{
filebuf = CreateFileBuf(1024);
i = freadline(logfile,filebuf);
if(i==0)
{
szLine = GetStringFromBuf(filebuf);
if(!strcmp(szLine,"3D Device initialization Ok."))
{
i = 0;
}
else
{
i = 1;
}
}
DeleteFileBuf(filebuf);
fclose(logfile);
}
// return
return i;
}
func void init ()
{
G_szVersion = "v1.00.004";
print("version:");println(G_szVersion);
// Default language
SetLanguage(0);
// Buffers init
SetSpriteBuffer(8192*2);
SetTextureBuffer(256);
SetMaterialBuffer(256);
// Save each device into "device.log"
LogDevice3D();
// Load last saved language
LoadLanguage();
// Detect 3D device init problem
if(!Is3DDeviceInitProblem())
{
// Load last saved video mode
LoadVideoMode();
}
else
{
// 3D device init problem :
print("Reset video config.\n");
ResetVideoModeConfig();
}
// Load last saved audio settings
LoadAudio();
// Color Set Init
Init_Color_Set(0);
// Texture loading
Init_Textures();
// MenuServer settings
g_oMenuServer.m_szIP = "127.0.0.1";
g_oMenuServer.m_iPort = 1111;
g_oInRaceServer.m_szResolServerPass = g_szNull;
// default gateway
g_oLobby.m_szIP = "127.0.0.1";
g_szInternetConfig = "";
// inrace server
g_oInRaceServer.m_iCanStartRace = 0;
// Make manager init here
oManager.iNotifyTransfert = false;
oManager.szName = "Manager";
oManager.oFunc.pcreate = main;
oManager.oFunc.pevent = manager;
// Default window position
oManager.iWindowPositionX = 143;
oManager.iWindowPositionY = 39;
oManager.iWindowDialogID = ID_NOT_CREATED;
// Init query
vInitQueries();
// Display the first page (intro)
oManager.iPageID = PAGE_INTRO;
oManager.iConsoleID = -1; //Console Not Displayed
// Create local DB join
vCreateLocalDatabaseJoins();
g_oUser.m_szLogin = "Cyanide";
g_oUser.m_szPass = "BeCorrosive";
}
func void InitInternet(szx szIP, i32x iPort, i32x iServer, szx szPseudo, szx szConfig)
{
g_oGameConfig.m_iInternet = 1;
g_oGameConfig.m_iInternetServer = iServer;
g_oMenuServer.m_iPort = iPort;
g_oUser.m_szLogin = szPseudo;
g_oUser.m_szGatewayAuthorization = szPseudo;
g_szInternetConfig = szConfig;
//g_oLobby.m_iUserPort = iPort1;
//g_oLobby.m_iGamePort = iPort2;
if (g_oGameConfig.m_iInternetServer)
{
// create dummy lobby
fnGameServer_Create();
}
else
{
g_oMenuServer.m_szIP = szIP;
}
}
func void InitNoInternet()
{
g_oGameConfig.m_iInternet = 0;
// create local lobby
fnGameServer_Create();
// lobby database
Database_Open(QUERY_GAME_SERVERS, "Database/Games.cdb");
CreateGatewayJoins();
g_oGatewayJoins.szIP = Join_Constructor(QUERY_GAME_SERVERS, "Games.szIP");
g_oGatewayJoins.iPort = Join_Constructor(QUERY_GAME_SERVERS, "Games.iPort");
}
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
// Local Database joins
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
func void vCreateLocalDatabaseJoins()
{
var i32x iLanguage;
var szx szColumnName;
// Create global join
iLanguage = GetLanguage();
szColumnName = "gene_sz_";
if(iLanguage==LANGUAGE_ENGLISH)
szColumnName = strcat(szColumnName,"english");
if(iLanguage==LANGUAGE_FRENCH)
szColumnName = strcat(szColumnName,"french");
if(iLanguage==LANGUAGE_DUTCH)
szColumnName = strcat(szColumnName,"dutch");
if(iLanguage==LANGUAGE_SPANISH)
szColumnName = strcat(szColumnName,"spanish");
if(iLanguage==LANGUAGE_ITALIAN)
szColumnName = strcat(szColumnName,"italian");
if(iLanguage==LANGUAGE_GERMAN)
szColumnName = strcat(szColumnName,"german");
// Destroy old join
if(g_oLocalJoins.m_iGameMenuString>0)
Join_Destructor(g_oLocalJoins.m_iGameMenuString);
if(g_oLocalJoins.m_iLocalizedString>0)
Join_Destructor(g_oLocalJoins.m_iLocalizedString);
if(g_oLocalJoins.m_iFormattedString>0)
Join_Destructor(g_oLocalJoins.m_iFormattedString);
g_oLocalJoins.m_iUser_szName = Join_Constructor(DATABASE_LOCAL,"DYN_config.user_sz_name");
g_oLocalJoins.m_iGameMenuString = Join_Constructor(DATABASE_LOCAL,strcat("STA_game_menu.game_strID_text.STA_localized_string.",szColumnName));
g_oLocalJoins.m_iLocalizedString = Join_Constructor(DATABASE_LOCAL,strcat("STA_localized_string.",szColumnName));
g_oLocalJoins.m_iFormattedString = Join_Constructor(DATABASE_LOCAL,strcat("STA_formated_string.",szColumnName));
// gateway join
g_oLocalJoins.m_iGateway_iId = Join_Constructor(DATABASE_LOCAL,"GAM_gateway.IDgateway");
g_oLocalJoins.m_iGateway_szIp = Join_Constructor(DATABASE_LOCAL,"GAM_gateway.gene_sz_ip");
g_oLocalJoins.m_iGateway_iValid = Join_Constructor(DATABASE_LOCAL,"GAM_gateway.gene_b_valid");
// Single player Slot join
g_oLocalJoins.m_iSSlot_iId = Join_Constructor(DATABASE_LOCAL,"GAM_slot_single.IDslot_single");
g_oLocalJoins.m_iSSlot_iDate = Join_Constructor(DATABASE_LOCAL,"GAM_slot_single.gene_i_date");
g_oLocalJoins.m_iSSlot_iGameMode = Join_Constructor(DATABASE_LOCAL,"GAM_slot_single.game_i_mode");
g_oLocalJoins.m_iSSlot_iStageId = Join_Constructor(DATABASE_LOCAL,"GAM_slot_single.fkIDstage");
g_oLocalJoins.m_iSSlot_szDatabase = Join_Constructor(DATABASE_LOCAL,"GAM_slot_single.gene_sz_database");
g_oLocalJoins.m_iSSlot_bFirstLaunch = Join_Constructor(DATABASE_LOCAL,"GAM_slot_single.gene_b_firstlaunch");
g_oLocalJoins.m_iSSlot_bGameOver = Join_Constructor(DATABASE_LOCAL,"GAM_slot_single.gene_b_gameover");
// Multiplayer Slot join
g_oLocalJoins.m_iMSlot_iId = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.IDslot_multi");
g_oLocalJoins.m_iMSlot_iDate = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.gene_i_date");
g_oLocalJoins.m_iMSlot_iGameMode = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.game_i_mode");
g_oLocalJoins.m_iMSlot_iStageId = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.fkIDstage");
g_oLocalJoins.m_iMSlot_szDatabase = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.gene_sz_database");
g_oLocalJoins.m_iMSlot_bFirstLaunch = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.gene_b_firstlaunch");
g_oLocalJoins.m_iMSlot_szName = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.gene_sz_name");
g_oLocalJoins.m_iMSlot_szPass = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.gene_sz_password");
g_oLocalJoins.m_iMSlot_bGameOver = Join_Constructor(DATABASE_LOCAL,"GAM_slot_multi.gene_b_gameover");
// Stage join
g_oLocalJoins.m_iStage_iId = Join_Constructor(DATABASE_LOCAL,"STA_stage.IDstage");
g_oLocalJoins.m_iStage_szRelief = Join_Constructor(DATABASE_LOCAL,"STA_stage.gene_sz_relief");
g_oLocalJoins.m_iStage_iType = Join_Constructor(DATABASE_LOCAL,"STA_stage.gene_i_time_trial");
g_oLocalJoins.m_iStage_iNameId = Join_Constructor(DATABASE_LOCAL,"STA_stage.gene_strID_stage_name");
g_oLocalJoins.m_iStage_iRaceId = Join_Constructor(DATABASE_LOCAL,"STA_stage.fkIDrace");
g_oLocalJoins.m_iStage_iRaceNameId = Join_Constructor(DATABASE_LOCAL,"STA_stage.fkIDrace.STA_race.gene_strID_race_name");
g_oLocalJoins.m_iStage_fLength = Join_Constructor(DATABASE_LOCAL,"STA_stage.gene_f_distance");
g_oLocalJoins.m_iStage_iDay = Join_Constructor(DATABASE_LOCAL,"STA_stage.gene_i_day");
g_oLocalJoins.m_iStage_iNumber = Join_Constructor(DATABASE_LOCAL,"STA_stage.gene_i_stage_number");
// Race join
g_oLocalJoins.m_iRace_iId = Join_Constructor(DATABASE_LOCAL,"STA_race.IDrace");
g_oLocalJoins.m_iRace_iNameId = Join_Constructor(DATABASE_LOCAL,"STA_race.gene_strID_race_name");
g_oLocalJoins.m_iRace_iStageNumber = Join_Constructor(DATABASE_LOCAL,"STA_race.gene_i_number_stages");
g_oLocalJoins.m_iRace_iDay = Join_Constructor(DATABASE_LOCAL,"STA_race.gene_i_date");
g_oLocalJoins.m_iRace_iCountryId = Join_Constructor(DATABASE_LOCAL,"STA_race.fkIDcountry");
g_oLocalJoins.m_iRace_iUciClassStrId= Join_Constructor(DATABASE_LOCAL,"STA_race.fkIDUCI_class.STA_UCI_class.gene_strID_UCI_class");
// Country join
g_oLocalJoins.m_iCountry_iTgaId = Join_Constructor(DATABASE_LOCAL,"STA_country.gene_tgaID_flag");
// Tga join
g_oLocalJoins.m_iTga_szDirectory = Join_Constructor(DATABASE_LOCAL,"STA_TGA.fkIDdirectory.STA_directory.game_sz_directory");
g_oLocalJoins.m_iTga_szName = Join_Constructor(DATABASE_LOCAL,"STA_TGA.gene_sz_TGA");
}
func void vDestroyLocalDatabaseJoins()
{
// Tga join
if(g_oLocalJoins.m_iTga_szDirectory>0)
{
Join_Destructor(g_oLocalJoins.m_iTga_szDirectory);
g_oLocalJoins.m_iTga_szDirectory = 0;
}
if(g_oLocalJoins.m_iTga_szName>0)
{
Join_Destructor(g_oLocalJoins.m_iTga_szName);
g_oLocalJoins.m_iTga_szName = 0;
}
// Localized string join
if(g_oLocalJoins.m_iGameMenuString>0)
{
Join_Destructor(g_oLocalJoins.m_iGameMenuString);
g_oLocalJoins.m_iGameMenuString = 0;
}
if(g_oLocalJoins.m_iLocalizedString>0)
{
Join_Destructor(g_oLocalJoins.m_iLocalizedString);
g_oLocalJoins.m_iLocalizedString = 0;
}
if(g_oLocalJoins.m_iFormattedString>0)
{
Join_Destructor(g_oLocalJoins.m_iFormattedString);
g_oLocalJoins.m_iFormattedString = 0;
}
if(g_oLocalJoins.m_iUser_szName>0)
{
Join_Destructor(g_oLocalJoins.m_iUser_szName);
g_oLocalJoins.m_iUser_szName = 0;
}
// gateway join
if(g_oLocalJoins.m_iGateway_iId>0)
{
Join_Destructor(g_oLocalJoins.m_iGateway_iId);
g_oLocalJoins.m_iGateway_iId = 0;
}
if(g_oLocalJoins.m_iGateway_szIp>0)
{
Join_Destructor(g_oLocalJoins.m_iGateway_szIp);
g_oLocalJoins.m_iGateway_szIp = 0;
}
if(g_oLocalJoins.m_iGateway_iValid>0)
{
Join_Destructor(g_oLocalJoins.m_iGateway_iValid);
g_oLocalJoins.m_iGateway_iValid = 0;
}
// Single player slot
if(g_oLocalJoins.m_iSSlot_iId>0)
{
Join_Destructor(g_oLocalJoins.m_iSSlot_iId);
g_oLocalJoins.m_iSSlot_iId = 0;
}
if(g_oLocalJoins.m_iSSlot_iDate>0)
{
Join_Destructor(g_oLocalJoins.m_iSSlot_iDate);
g_oLocalJoins.m_iSSlot_iDate = 0;
}
if(g_oLocalJoins.m_iSSlot_iGameMode>0)
{
Join_Destructor(g_oLocalJoins.m_iSSlot_iGameMode);
g_oLocalJoins.m_iSSlot_iGameMode = 0;
}
if(g_oLocalJoins.m_iSSlot_iStageId>0)
{
Join_Destructor(g_oLocalJoins.m_iSSlot_iStageId);
g_oLocalJoins.m_iSSlot_iStageId = 0;
}
if(g_oLocalJoins.m_iSSlot_szDatabase>0)
{
Join_Destructor(g_oLocalJoins.m_iSSlot_szDatabase);
g_oLocalJoins.m_iSSlot_szDatabase = 0;
}
if(g_oLocalJoins.m_iSSlot_bFirstLaunch>0)
{
Join_Destructor(g_oLocalJoins.m_iSSlot_bFirstLaunch);
g_oLocalJoins.m_iSSlot_bFirstLaunch = 0;
}
if(g_oLocalJoins.m_iSSlot_bGameOver)
{
Join_Destructor(g_oLocalJoins.m_iSSlot_bGameOver);
g_oLocalJoins.m_iSSlot_bGameOver = 0;
}
// Multiplayer slot
if(g_oLocalJoins.m_iMSlot_iId>0)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_iId);
g_oLocalJoins.m_iMSlot_iId = 0;
}
if(g_oLocalJoins.m_iMSlot_iDate>0)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_iDate);
g_oLocalJoins.m_iMSlot_iDate = 0;
}
if(g_oLocalJoins.m_iMSlot_iGameMode>0)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_iGameMode);
g_oLocalJoins.m_iMSlot_iGameMode = 0;
}
if(g_oLocalJoins.m_iMSlot_iStageId>0)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_iStageId);
g_oLocalJoins.m_iMSlot_iStageId = 0;
}
if(g_oLocalJoins.m_iMSlot_szDatabase>0)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_szDatabase);
g_oLocalJoins.m_iMSlot_szDatabase = 0;
}
if(g_oLocalJoins.m_iMSlot_bFirstLaunch>0)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_bFirstLaunch);
g_oLocalJoins.m_iMSlot_bFirstLaunch = 0;
}
if(g_oLocalJoins.m_iMSlot_szName>0)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_szName);
g_oLocalJoins.m_iMSlot_szName = 0;
}
if(g_oLocalJoins.m_iMSlot_szPass>0)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_szPass);
g_oLocalJoins.m_iMSlot_szPass = 0;
}
if(g_oLocalJoins.m_iMSlot_bGameOver)
{
Join_Destructor(g_oLocalJoins.m_iMSlot_bGameOver);
g_oLocalJoins.m_iMSlot_bGameOver = 0;
}
// Stage join
if(g_oLocalJoins.m_iStage_szRelief>0)
{
Join_Destructor(g_oLocalJoins.m_iStage_szRelief);
g_oLocalJoins.m_iStage_szRelief = 0;
}
if(g_oLocalJoins.m_iStage_iId>0)
{
Join_Destructor(g_oLocalJoins.m_iStage_iId);
g_oLocalJoins.m_iStage_iId = 0;
}
if(g_oLocalJoins.m_iStage_iType>0)
{
Join_Destructor(g_oLocalJoins.m_iStage_iType);
g_oLocalJoins.m_iStage_iType = 0;
}
if (g_oLocalJoins.m_iStage_iNameId)
{
Join_Destructor(g_oLocalJoins.m_iStage_iNameId);
g_oLocalJoins.m_iStage_iNameId = 0;
}
if (g_oLocalJoins.m_iStage_iRaceId)
{
Join_Destructor(g_oLocalJoins.m_iStage_iRaceId);
g_oLocalJoins.m_iStage_iRaceId = 0;
}
if (g_oLocalJoins.m_iStage_iRaceNameId)
{
Join_Destructor(g_oLocalJoins.m_iStage_iRaceNameId);
g_oLocalJoins.m_iStage_iRaceNameId = 0;
}
if (g_oLocalJoins.m_iStage_fLength)
{
Join_Destructor(g_oLocalJoins.m_iStage_fLength);
g_oLocalJoins.m_iStage_fLength = 0;
}
if (g_oLocalJoins.m_iStage_iDay)
{
Join_Destructor(g_oLocalJoins.m_iStage_iDay);
g_oLocalJoins.m_iStage_iDay = 0;
}
if (g_oLocalJoins.m_iStage_iNumber)
{
Join_Destructor(g_oLocalJoins.m_iStage_iNumber);
g_oLocalJoins.m_iStage_iNumber = 0;
}
// Country join
if (g_oLocalJoins.m_iCountry_iTgaId)
{
Join_Destructor(g_oLocalJoins.m_iCountry_iTgaId);
g_oLocalJoins.m_iCountry_iTgaId = 0;
}
// Race join
if(g_oLocalJoins.m_iRace_iId>0)
{
Join_Destructor(g_oLocalJoins.m_iRace_iId);
g_oLocalJoins.m_iRace_iId = 0;
}
if(g_oLocalJoins.m_iRace_iNameId>0)
{
Join_Destructor(g_oLocalJoins.m_iRace_iNameId);
g_oLocalJoins.m_iRace_iNameId = 0;
}
if(g_oLocalJoins.m_iRace_iStageNumber>0)
{
Join_Destructor(g_oLocalJoins.m_iRace_iStageNumber);
g_oLocalJoins.m_iRace_iStageNumber = 0;
}
if(g_oLocalJoins.m_iRace_iDay>0)
{
Join_Destructor(g_oLocalJoins.m_iRace_iDay);
g_oLocalJoins.m_iRace_iDay = 0;
}
if(g_oLocalJoins.m_iRace_iCountryId>0)
{
Join_Destructor(g_oLocalJoins.m_iRace_iCountryId);
g_oLocalJoins.m_iRace_iCountryId = 0;
}
if(g_oLocalJoins.m_iRace_iUciClassStrId>0)
{
Join_Destructor(g_oLocalJoins.m_iRace_iUciClassStrId);
g_oLocalJoins.m_iRace_iUciClassStrId = 0;
}
}