195 lines
4.3 KiB
C++
Executable File
195 lines
4.3 KiB
C++
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#include "platform/platform.h"
|
|
#include "platform/event.h"
|
|
#include "platform/platformAssert.h"
|
|
#include "console/console.h"
|
|
#include "console/consoleTypes.h"
|
|
#include "math/mathTypes.h"
|
|
#include "langc/langc.h"
|
|
|
|
#include "core/fileStream.h"
|
|
|
|
#include "i18n/lang.h"
|
|
#include "langcomp.h"
|
|
#include "Getopt.h"
|
|
|
|
#include <stdlib.h>
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
LangCGame GameObject;
|
|
|
|
// FOR SILLY LINK DEPENDANCY. REMOVE THIS AT YOUR PERIL.
|
|
bool gEditingMission = false;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
static bool initLibraries()
|
|
{
|
|
// asserts should be created FIRST
|
|
PlatformAssert::create();
|
|
|
|
_StringTable::create();
|
|
// ResManager::create();
|
|
|
|
Con::init();
|
|
|
|
Math::init();
|
|
Platform::init(); // platform specific initialization
|
|
return(true);
|
|
}
|
|
|
|
static void shutdownLibraries()
|
|
{
|
|
// Purge any resources on the timeout list...
|
|
// if (ResourceManager)
|
|
// ResourceManager->purge();
|
|
|
|
// shut down
|
|
Platform::shutdown();
|
|
Con::shutdown();
|
|
|
|
// ResManager::destroy();
|
|
_StringTable::destroy();
|
|
|
|
// asserts should be destroyed LAST
|
|
PlatformAssert::destroy();
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
static void usage(void)
|
|
{
|
|
dPrintf("Usage: langc [options] <filename> <outbasename>\n\n");
|
|
dPrintf("Where options is one or more of:\n\n");
|
|
dPrintf(" -l Write Language File -h Write C++ Header\n");
|
|
dPrintf(" -s Write Script -d Write C++ Defaults\n");
|
|
dPrintf(" -t Compile a translation -r Write translation file\n");
|
|
dPrintf(" -e <filename> Specify english file when compiling translations\n");
|
|
dPrintf("\n");
|
|
dPrintf(" -S Don't strip leading spaces -T Strip trailing spaces\n");
|
|
dPrintf(" -I Don't warn for invalid chars -W Don't warn for empty identifiers\n");
|
|
dPrintf(" -q Quiet mode, no warnings at all\n");
|
|
dPrintf("\nMore information can be found in the documentation at:\n %s\n", I18N_DOC_URL);
|
|
}
|
|
|
|
S32 LangCGame::main(S32 argc, const char **argv)
|
|
{
|
|
S32 i, ch;
|
|
U32 flags = LCO_WARNNOSTRING;
|
|
Getopt opts("STIWqhsdlrte:");
|
|
char *englishFile = NULL;
|
|
|
|
if(! initLibraries())
|
|
return 0;
|
|
|
|
while((ch = opts.getopt(argc, (char **)argv)) != -1)
|
|
{
|
|
switch(ch)
|
|
{
|
|
case 't':
|
|
// Compile a translation
|
|
flags |= LCO_COMPILETRANSLATION;
|
|
break;
|
|
|
|
case 'e':
|
|
// Specify english file
|
|
englishFile = opts.m_sOptArg;
|
|
break;
|
|
|
|
case 'S':
|
|
// Don't strip spaces
|
|
flags |= LCO_DONTSTRIPSPACES;
|
|
break;
|
|
|
|
case 'T':
|
|
// Strip trailing space
|
|
flags |= LCO_STRIPTRAILINGSPACE;
|
|
break;
|
|
|
|
case 'I':
|
|
// Don't warn for invalid chars
|
|
flags |= LCO_DONTWARNINVALIDCHAR;
|
|
break;
|
|
|
|
case 'W':
|
|
// Don't warn for empty identifiers
|
|
flags &= ~LCO_WARNNOSTRING;
|
|
break;
|
|
|
|
case 'q':
|
|
// Quiet mode, no warnings at all
|
|
flags |= LCO_NOWARNINGS;
|
|
break;
|
|
|
|
case 'h':
|
|
// Write Header
|
|
flags |= LCO_WRITEHEADER;
|
|
break;
|
|
|
|
case 's':
|
|
// Write Script
|
|
flags |= LCO_WRITESCRIPT;
|
|
break;
|
|
|
|
case 'd':
|
|
// Write C++ Defaults
|
|
flags |= LCO_WRITECDEFAULTS;
|
|
break;
|
|
|
|
case 'l':
|
|
// Write Lang Table
|
|
flags |= LCO_WRITELANGTABLE;
|
|
break;
|
|
|
|
case 'r':
|
|
// Write translation
|
|
flags |= LCO_WRITETRANSLATION;
|
|
break;
|
|
|
|
case GO_BAD_ARG:
|
|
dPrintf("option %c requires an argument\n", opts.m_nOptOpt);
|
|
break;
|
|
|
|
case GO_INVALID_CHAR:
|
|
dPrintf("%c is an invalid option\n", opts.m_nOptOpt);
|
|
break;
|
|
|
|
case GO_BAD_CHAR:
|
|
usage();
|
|
shutdownLibraries();
|
|
return 0;
|
|
}
|
|
}
|
|
argc -= opts.m_nOptInd;
|
|
argv += opts.m_nOptInd;
|
|
|
|
if(argc < 2)
|
|
{
|
|
usage();
|
|
return 0;
|
|
}
|
|
|
|
LangComp c(flags);
|
|
|
|
dPrintf("Compiling ... \n");
|
|
c.Compile(argv[0], argv[1], englishFile);
|
|
|
|
shutdownLibraries();
|
|
return 0;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
void GameReactivate()
|
|
{
|
|
}
|
|
|
|
void GameDeactivate( bool )
|
|
{
|
|
}
|