mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-12-27 07:54:51 +01:00
102 lines
3.0 KiB
C++
102 lines
3.0 KiB
C++
|
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
|
||
|
|
||
|
|
||
|
// MakeFONT - Font table File Creator
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include <assert.h>
|
||
|
|
||
|
#include <Engine/Engine.h>
|
||
|
|
||
|
|
||
|
void SubMain( int argc, char *argv[])
|
||
|
{
|
||
|
printf("\nMakeFONT - Font Tables Maker (2.51)\n");
|
||
|
printf( " (C)1999 CROTEAM Ltd\n\n");
|
||
|
// 5 to 7 parameters are allowed as input
|
||
|
if( (argc<5) || (argc>6))
|
||
|
{
|
||
|
printf( "USAGE: MakeFont <texture_file> <char_width> <char_height> ");
|
||
|
printf( "<char_order_file> [-A]\n");
|
||
|
printf( "\n");
|
||
|
printf( "texture_file: FULL PATH to texture file that represents font\n");
|
||
|
printf( "char_width: maximum width (in pixels) of single character\n");
|
||
|
printf( "char_height: maximum height (in pixels) of single character\n");
|
||
|
printf( "char_order_file: full path to ASCII file that shows\n");
|
||
|
printf( " graphical order of character in font texture\n");
|
||
|
printf( "-A: do not include alpha channel when determining character width \n");
|
||
|
printf( "\n");
|
||
|
printf( "NOTES: - out file will have the name as texture file, but \".fnt\" extension\n");
|
||
|
printf( " - texture file must begin with character that will be a replacement for\n");
|
||
|
printf( " each character that hasn't got definition in this texture file\n");
|
||
|
exit( EXIT_FAILURE);
|
||
|
}
|
||
|
|
||
|
// initialize engine
|
||
|
SE_InitEngine("");
|
||
|
|
||
|
// first input parameter is texture name
|
||
|
CTFileName fnTextureFileName = CTString(argv[1]);
|
||
|
// parameters 2 and 3 give us character dimensions
|
||
|
ULONG ulCharWidth = strtoul( argv[2], NULL, 10);
|
||
|
ULONG ulCharHeight= strtoul( argv[3], NULL, 10);
|
||
|
// parameter 4 specifies text file for character arrangements
|
||
|
CTFileName fnOrderFile = CTString(argv[4]);
|
||
|
|
||
|
// alpha channel ignore check
|
||
|
BOOL bUseAlpha = TRUE;
|
||
|
if( argc==6 && (argv[5][1]=='a' || argv[5][1]=='A')) bUseAlpha = FALSE;
|
||
|
|
||
|
// font generation starts
|
||
|
printf( "- Generating font table.\n");
|
||
|
// try to create font
|
||
|
CFontData fdFontData;
|
||
|
try
|
||
|
{
|
||
|
// remove application path from font texture file
|
||
|
fnTextureFileName.RemoveApplicationPath_t();
|
||
|
// create font
|
||
|
fdFontData.Make_t( fnTextureFileName, ulCharWidth, ulCharHeight, fnOrderFile, bUseAlpha);
|
||
|
}
|
||
|
// catch and report errors
|
||
|
catch(char *strError)
|
||
|
{
|
||
|
printf( "! Cannot create font.\n %s\n", strError);
|
||
|
exit(EXIT_FAILURE);
|
||
|
}
|
||
|
|
||
|
// save processed data
|
||
|
printf( "- Saving font table file.\n");
|
||
|
// create font name
|
||
|
CTFileName strFontFileName;
|
||
|
strFontFileName = fnTextureFileName.FileDir()+fnTextureFileName.FileName() + ".fnt";
|
||
|
// try to
|
||
|
try
|
||
|
{
|
||
|
fdFontData.Save_t( strFontFileName);
|
||
|
}
|
||
|
catch(char *strError)
|
||
|
{
|
||
|
printf("! Cannot save font.\n %s\n", strError);
|
||
|
exit(EXIT_FAILURE);
|
||
|
}
|
||
|
printf( "- '%s' created successfuly.\n", strFontFileName);
|
||
|
|
||
|
exit( EXIT_SUCCESS);
|
||
|
}
|
||
|
|
||
|
|
||
|
// ---------------- Main
|
||
|
int main( int argc, char *argv[])
|
||
|
{
|
||
|
CTSTREAM_BEGIN
|
||
|
{
|
||
|
SubMain(argc, argv);
|
||
|
}
|
||
|
CTSTREAM_END;
|
||
|
getch();
|
||
|
return 0;
|
||
|
}
|