diff options
Diffstat (limited to 'servergreps/hercules/src')
-rwxr-xr-x | servergreps/hercules/src/hercules.py | 19 | ||||
-rwxr-xr-x | servergreps/hercules/src/preproc.py | 26 |
2 files changed, 45 insertions, 0 deletions
diff --git a/servergreps/hercules/src/hercules.py b/servergreps/hercules/src/hercules.py index ad82b4e..b910929 100755 --- a/servergreps/hercules/src/hercules.py +++ b/servergreps/hercules/src/hercules.py @@ -7,6 +7,8 @@ import os import re +from src.preproc import PreProc + filt = re.compile(".+[.](c|h)", re.IGNORECASE) class Hercules: @@ -167,3 +169,20 @@ class Hercules: self.collectInPackets(serverInPacketsHPath, serverLoginInPackets) self.sortInPackets() self.sortOutPackets() + + + def prepareTempFiles(self, codeDir, packetDir, packetVersion): + proc = PreProc() + proc.init(packetDir + "/src/hercules") + proc.defines = "-DPACKETVER=" + packetVersion + " -DCOMMON_SOCKET_H -DWFIFOW\\(fd,pos\\)=WFIFOW\\(fd,pos\\) -DWBUFW\\(p,pos\\)=WBUFW\\(p,pos\\)" + proc.includes = "-I../links/" + codeDir + "/src -I../links/" + codeDir + "/3rdparty" + proc.inDir = "../links/" + codeDir + "/src/" + proc.outDir = packetDir + "/src/hercules/" + proc.run("map", "packets_struct.h"); + proc.run("char", "char.c"); + proc.run("login", "login.c"); + proc.run("map", "clif.c"); + proc.run("login", "lclif.p.h"); + proc.run("login", "lclif.c"); + proc.defines = "-DPACKETVER=" + packetVersion + " -Dpacket\\(id,size,...\\)=packet\\(id,size,__VA_ARGS__\\)" + proc.run("map", "packets.h"); diff --git a/servergreps/hercules/src/preproc.py b/servergreps/hercules/src/preproc.py new file mode 100755 index 0000000..23735c9 --- /dev/null +++ b/servergreps/hercules/src/preproc.py @@ -0,0 +1,26 @@ +#! /usr/bin/env python2 +# -*- coding: utf8 -*- +# +# Copyright (C) 2015-2016 Evol Online +# Author: Andrei Karas (4144) + +import os +import re +import sys +import shutil + +class PreProc: + def init(self, tmpDir): + if os.path.exists(tmpDir): + shutil.rmtree(tmpDir) + os.makedirs(tmpDir) + + + def run(self, subDir, outFile): + os.system( + "cpp {defines} {includes} {subDir}/{inFile} {outFile}".format( + defines = self.defines, + includes = self.includes, + subDir = self.inDir + subDir, + inFile = outFile, + outFile = self.outDir + outFile)) |