summaryrefslogtreecommitdiff
path: root/utils/tfstats/res2c
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/tfstats/res2c
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'utils/tfstats/res2c')
-rw-r--r--utils/tfstats/res2c/header.cpp57
-rw-r--r--utils/tfstats/res2c/main.cpp111
-rw-r--r--utils/tfstats/res2c/res2c.vcproj152
3 files changed, 320 insertions, 0 deletions
diff --git a/utils/tfstats/res2c/header.cpp b/utils/tfstats/res2c/header.cpp
new file mode 100644
index 0000000..dd621e2
--- /dev/null
+++ b/utils/tfstats/res2c/header.cpp
@@ -0,0 +1,57 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//
+//=============================================================================//
+char* szHeaderFile=
+"//=========== (C) Copyright 1999 Valve, L.L.C. All rights reserved. ===========\n"\
+"//\n"\
+"// The copyright to the contents herein is the property of Valve, L.L.C.\n"\
+"// The contents may be used and/or copied only with the written permission of\n"\
+"// Valve, L.L.C., or in accordance with the terms and conditions stipulated in\n"\
+"// the agreement/contract under which the contents have been supplied.\n"\
+"//\n"\
+"// Purpose: \n"\
+"//\n"\
+"// $Workfile: $\n"\
+"// $Date: $\n"\
+"//\n"\
+"//------------------------------------------------------------------------------------------------------\n"\
+"// $Log: $\n"\
+"//\n"\
+"// $NoKeywords: $\n"\
+"//=============================================================================\n"\
+"#ifndef BINARYRESOURCE_H\n"\
+"#define BINARYRESOURCE_H\n"\
+"#ifdef WIN32\n"\
+"#pragma once\n"\
+"#endif\n"\
+"#include <string>\n"\
+"#include <stdio.h>\n"\
+"\n"\
+"class CBinaryResource\n"\
+"{\n"\
+"private:\n"\
+" std::string filename;\n"\
+" size_t numBytes;\n"\
+" unsigned char* pData;\n"\
+"public:\n"\
+" CBinaryResource(char* name, size_t bytes,unsigned char* data)\n"\
+" :filename(name),numBytes(bytes),pData(data)\n"\
+" {}\n"\
+" \n"\
+" bool writeOut()\n"\
+" {\n"\
+" FILE* f=fopen(filename.c_str(),\"wb\");\n"\
+" if (!f)\n"\
+" return false;\n"\
+" fwrite(pData,1,numBytes,f);\n"\
+" fclose(f);\n"\
+" return true;\n"\
+" }\n"\
+"};\n"\
+"\n"\
+"#endif // BINARYRESOURCE_H\n"\
+"\n"; \ No newline at end of file
diff --git a/utils/tfstats/res2c/main.cpp b/utils/tfstats/res2c/main.cpp
new file mode 100644
index 0000000..8d844cf
--- /dev/null
+++ b/utils/tfstats/res2c/main.cpp
@@ -0,0 +1,111 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//
+//=============================================================================//
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+
+#define NUM_PER_LINE 40
+
+extern char* szHeaderFile;
+
+void printUsage()
+{
+ printf("res2c <res file name> <c file name> <object name>\n");
+}
+
+char* id4filename(const char* filename)
+{
+ static char id[500];
+
+ const char* read=filename;
+ char *write=id;
+
+ for (read;*read;read++)
+ {
+ //if first char
+ if (read==filename)
+ {
+ if (isalpha(*read) || *read=='_')
+ *write++=*read;
+ }
+ else if (isalnum(*read))
+ *write++=*read;
+ }
+ *write++='s';
+ *write++='r';
+ *write++='c';
+ *write++='\0';
+
+ return id;
+}
+void main(int argc, const char* argv[])
+{
+ if (argc < 4)
+ {
+ printUsage();
+ return;
+ }
+ char cppname[200];
+ sprintf(cppname,"%s.cpp",argv[2]);
+ char hname[200];
+ sprintf(hname,"%s.h",argv[2]);
+
+ FILE* f=fopen(argv[1],"rb");
+ FILE* cppout=fopen(cppname,"at");
+ FILE* hout=fopen(hname,"at");
+ FILE* brheader=fopen("BinaryResource.h","wt");
+ if (!brheader){printf("couldn't open %s to write\n","BinaryResource.h");exit(-1);}
+ if (!f){printf("couldn't read %s\n",argv[1]);exit(-1);}
+ if (!cppout){printf("couldn't open %s to write\n",argv[2]);exit(-1);}
+ if (!hout){printf("couldn't open %s to write\n",argv[2]);exit(-1);}
+
+
+ fprintf(brheader,szHeaderFile);
+ fclose(brheader);
+
+
+ fprintf(cppout,"\nunsigned char %s[]={\n",id4filename(argv[1]));
+
+ int numLeft4Line=NUM_PER_LINE;
+
+ unsigned char c;
+ int result=fread(&c,sizeof(unsigned char),1,f);
+
+ int numbytes=0;
+ while (result)
+ {
+ //int longc=(*c)&0x000000ff;
+ fprintf(cppout,"0x%02.2x,",c);
+ numbytes++;
+ if(--numLeft4Line==0)
+ {
+ numLeft4Line=NUM_PER_LINE;
+ fprintf(cppout,"\n");
+ }
+ result=fread(&c,sizeof(unsigned char),1,f);
+ }
+
+ fprintf(cppout,"\n};\n\n");
+
+ char* coloncolon=strstr(argv[3],"::");
+ if (coloncolon!=NULL)
+ {
+ coloncolon+=2;
+ fprintf(hout,"static CBinaryResource %s;\n",coloncolon);
+ fprintf(cppout,"CBinaryResource %s(\"%s\",%li,%s);\n\n\n",argv[3],argv[1],numbytes,id4filename(argv[1]));
+ }
+ else
+ {
+ fprintf(hout,"//extern CBinaryResource g_%s;\n",argv[3]);
+ fprintf(cppout,"CBinaryResource g_%s;\n",argv[3]);
+ }
+ fclose(cppout);
+ fclose(hout);
+ fclose(f);
+} \ No newline at end of file
diff --git a/utils/tfstats/res2c/res2c.vcproj b/utils/tfstats/res2c/res2c.vcproj
new file mode 100644
index 0000000..3859ba0
--- /dev/null
+++ b/utils/tfstats/res2c/res2c.vcproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="res2c"
+ ProjectGUID="{3245AFA2-1569-4ED7-B378-3B6461B3F5BA}"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="TRUE"
+ RuntimeLibrary="4"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/res2c.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile=".\Release/res2c.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile=".\Release/res2c.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/res2c.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="5"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/res2c.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile=".\Debug/res2c.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/res2c.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/res2c.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath="main.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>