From a8154726935b2d6a2273b75126a675e6e706edab Mon Sep 17 00:00:00 2001
From: Haru <haru@dotalux.com>
Date: Sun, 10 Jan 2016 02:01:55 +0100
Subject: Converted const.txt to libconfig format

- This is necessary for upcoming improvements

Signed-off-by: Haru <haru@dotalux.com>
---
 tools/Script-Checker.applescript | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'tools')

diff --git a/tools/Script-Checker.applescript b/tools/Script-Checker.applescript
index 0e657a358..0b7207569 100644
--- a/tools/Script-Checker.applescript
+++ b/tools/Script-Checker.applescript
@@ -85,7 +85,7 @@ on build_hercules(hercules_repo)
 	display dialog "Build successfully completed. Please check the log file for details." with title "Build result" buttons {"Abort", "Continue"} default button 2 cancel button 1
 	set the files_to_copy to {"map-server", "script-checker"}
 	set the conf_files_to_copy to {"inter-server.conf", "import", "packet.conf", "script.conf"}
-	set the db_files_to_copy to {"map_index.txt", "item_db2.txt", "const.txt", "mob_db2.txt"}
+	set the db_files_to_copy to {"map_index.txt", "item_db2.txt", "constants.conf", "mob_db2.txt"}
 	set the db2_files_to_copy to {"map_cache.dat", "item_db.txt", "skill_db.txt", "mob_db.txt"}
 	try
 		set the hercules_path to path to resource "Hercules"
-- 
cgit v1.2.3-70-g09d2


From 99f707e6a17eb68057b0d711e7fe785c09135e21 Mon Sep 17 00:00:00 2001
From: Haru <haru@dotalux.com>
Date: Wed, 13 Jan 2016 11:47:47 +0100
Subject: Added converter script from const.txt to constants.conf

Signed-off-by: Haru <haru@dotalux.com>
---
 tools/constdbconverter.pl | 114 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100755 tools/constdbconverter.pl

(limited to 'tools')

diff --git a/tools/constdbconverter.pl b/tools/constdbconverter.pl
new file mode 100755
index 000000000..31e84abef
--- /dev/null
+++ b/tools/constdbconverter.pl
@@ -0,0 +1,114 @@
+#!/usr/bin/perl
+#
+# This file is part of Hercules.
+# http://herc.ws - http://github.com/HerculesWS/Hercules
+#
+# Copyright (C) 2016  Hercules Dev Team
+#
+# Hercules is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This Script converts const.txt to constants.conf format.
+# usage example: perl tools/constdbconverter.pl < db/const.txt > db/constants.conf
+
+use strict;
+use warnings;
+
+sub parse_questdb (@) {
+	my @input = @_;
+	foreach (@input) {
+		chomp $_;
+#		Constant Name,Value,{is parameter}
+#		Constant Name\tValue\t{is parameter}
+		if( $_ =~ qr/^
+			(?<prefix>(?:\/\/[^A-Za-z0-9'_]*)?)
+			(?<ConstantName>[A-Za-z0-9'_]+)
+			(?:,|[\s\t]+)(?<Value>(?:0x[a-fA-F0-9]+|-?[0-9]+))
+			(?:(?:,|[\s\t]+)(?<IsParameter>([01])))?
+		/x ) {
+			my %cols = map { $_ => $+{$_} } keys %+;
+			$cols{prefix} = '// ' if !$cols{prefix} and $cols{ConstantName} =~ /^\s*(true|false)\s*$/;
+			if ($cols{IsParameter} and $cols{IsParameter} eq 1) {
+				print "/*\n" if $cols{prefix};
+				print "\t$cols{prefix}\n" if $cols{prefix} and $cols{prefix} !~ m|^//[\s\t]*$|;
+				print "\t$cols{ConstantName}: {\n";
+				print "\t\tValue: $cols{Value}\n";
+				print "\t\tParameter: true\n";
+				print "\t}\n";
+				print "*/\n" if $cols{prefix};
+				next;
+			}
+			print "\t$cols{prefix}" if $cols{prefix};
+			print "\t$cols{ConstantName}: $cols{Value}\n";
+		} elsif( $_ =~ /^\/\/(.*)$/ ) {
+			my $s = $1;
+			print "\t// $s\n" unless $s =~ /^[\s\t]*$/;
+		} elsif( $_ !~ /^\s*$/ ) {
+			print "// Error parsing: $_\n";
+		}
+	}
+}
+my $year = (localtime)[5] + 1900;
+print <<'EOF';
+//================= Hercules Database =====================================
+//=       _   _                     _
+//=      | | | |                   | |
+//=      | |_| | ___ _ __ ___ _   _| | ___  ___
+//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
+//=      | | | |  __/ | | (__| |_| | |  __/\__ \
+//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
+//================= License ===============================================
+EOF
+print << "EOF";
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2016-$year  Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Script Constants Database
+//=========================================================================
+
+constants_db: {
+/************* Entry structure (short) ************************************
+	Identifier: value            // (int)
+ ************* Entry structure (full) *************************************
+	Identifier: {
+		Value: value         // (int)
+		Parameter: true      // (boolean)      Defaults to false.
+		Deprecated: true     // (boolean)      Defaults to false.
+	}
+**************************************************************************/
+// NOTE:
+//   Parameters are special in that they retrieve certain runtime values
+//   depending on the specified ID in field Value. Depending on the
+//   implementation values assigned by scripts to parameters will affect
+//   runtime values, such as Zeny, as well (see pc_readparam/pc_setparam).
+
+EOF
+
+parse_questdb(<>);
+
+print "}\n";
-- 
cgit v1.2.3-70-g09d2