2017-04-17 06:17:10 -06:00

171 lines
4.2 KiB
C++
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#include "platform/platform.h"
#include "platform/platformAssert.h"
#include "math/mMath.h"
#include "core/resManager.h"
#include "console/console.h"
#include "dgl/gBitmap.h"
#include "dgl/gTexManager.h"
#include "console/consoleTypes.h"
#include "math/mathTypes.h"
#include "platform/event.h"
#include "core/frameAllocator.h"
#include "buildWad/wadProcessor.h"
//------------------------------------------------------------------------------
#include "platform/gameInterface.h"
class WadToolGame : public GameInterface
{
public:
S32 main(S32 argc, const char **argv);
} GameObject;
// FOR SILLY LINK DEPENDANCY
bool gEditingMission = false;
void GameHandleNotify(NetConnectionId, bool)
{
}
#if defined(TORQUE_DEBUG)
const char * const gProgramVersion = "0.900d-beta";
#else
const char * const gProgramVersion = "0.900r-beta";
#endif
//------------------------------------------------------------------------------
static bool initLibraries()
{
// asserts should be created FIRST
PlatformAssert::create();
FrameAllocator::init(1 << 20);
FrameAllocator::setWaterMark(0);
_StringTable::create();
TextureManager::create();
Con::init();
// Processor::init();
Math::init();
Platform::init(); // platform specific initialization
return(true);
}
//------------------------------------------------------------------------------
static void shutdownLibraries()
{
// shut down
Platform::shutdown();
Con::shutdown();
TextureManager::destroy();
_StringTable::destroy();
FrameAllocator::destroy();
// asserts should be destroyed LAST
PlatformAssert::destroy();
}
//------------------------------------------------------------------------------
void (*terrMipBlit)(U16 *dest, U32 destStride, U32 squareSize, const U8 *sourcePtr, U32 sourceStep, U32 sourceRowAdd) = 0;
struct Event;
void GamePostEvent(const Event& /*event*/)
{
//
}
S32 WadToolGame::main(int argc, const char ** argv)
{
if(!initLibraries())
return(0);
// give the console the command line
Con::setIntVariable("Game::argc", argc);
for(S32 i = 0; i < argc; i++)
Con::setVariable(avar("Game::argv%d", i), argv[i]);
// so the debugger can actually do something....
// if(argc<3)
// {
// const char* argvFake[] = { "wadtool", "lushTest", "lushtest.wad"};
// argc = 3;
// argv = argvFake;
// }
// info
if(argc <= 2)
{
dPrintf("\nbuildWad - Torque wad file creator\n"
" Copyright (C) GarageGames.com, Inc.\n"
" Programming by John Folliard\n"
" Program version: %s\n"
" Built: %s at %s\n", gProgramVersion, __DATE__, __TIME__);
dPrintf("\n Usage: buildWad -x <[@]source> <outputFile>.wad\n");
dPrintf("\n buildWad -x <directory>|<source.png>... <outputFile>.wad\n");
dPrintf( " -x: allow each texture to have a unique palette.\n");
shutdownLibraries();
return(0);
}
// create the wad processor - have it write a header then allow the lumps
// to write themseleves out, then close and fixup the wad
WadProcessor * waddy = new WadProcessor();
if (!waddy->open(argv[argc-1])) {
dPrintf(" *** Could not open wad file: %s\n",argv[argc-1]);
return(1);
}
U32 startArg = 1;
bool singlePalette = true;
// check for a switch
if(argv[1][0] == '-')
{
if(U8(dTolower(argv[1][1])) == 'x')
{
startArg++;
singlePalette = false;
}
}
// process the list of bitmaps...
for(S32 i = startArg; i < (argc-1); i++)
waddy->addBitmaps(argv[i]);
//
if(singlePalette)
waddy->processSinglePalette();
else
waddy->processBitmaps();
waddy->close();
delete waddy;
shutdownLibraries();
return(0);
}
void GameReactivate()
{
}
void GameDeactivate( bool )
{
}