summaryrefslogtreecommitdiff
path: root/servergreps/hercules/src
diff options
context:
space:
mode:
Diffstat (limited to 'servergreps/hercules/src')
-rwxr-xr-xservergreps/hercules/src/hercules.py19
-rwxr-xr-xservergreps/hercules/src/preproc.py26
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))