summaryrefslogtreecommitdiff
path: root/src/map/map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/map.h')
-rw-r--r--src/map/map.h384
1 files changed, 260 insertions, 124 deletions
diff --git a/src/map/map.h b/src/map/map.h
index ff7ca2d38..d4284b3f7 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2012-2015 Hercules Dev Team
+ * Copyright (C) 2012-2016 Hercules Dev Team
* Copyright (C) Athena Dev Teams
*
* Hercules is free software: you can redistribute it and/or modify
@@ -27,11 +27,13 @@
#include "common/db.h"
#include "common/mapindex.h"
#include "common/mmo.h"
-#include "common/sql.h"
#include <stdio.h>
#include <stdarg.h>
+/* Forward Declarations */
+struct Sql; // common/sql.h
+struct config_t; // common/conf.h
struct mob_data;
struct npc_data;
struct channel_data;
@@ -45,6 +47,7 @@ enum E_MAPSERVER_ST {
#define MAX_NPC_PER_MAP 512
#define AREA_SIZE (battle->bc->area_size)
+#define CHAT_AREA_SIZE (battle->bc->chat_area_size)
#define DAMAGELOG_SIZE 30
#define LOOTITEM_SIZE 10
#define MAX_MOBSKILL 50
@@ -72,7 +75,7 @@ enum E_MAPSERVER_ST {
//Super Novices are considered the 2-1 version of the novice! Novices are considered a first class type.
enum {
//Novice And 1-1 Jobs
- MAPID_NOVICE = 0x0,
+ MAPID_NOVICE = 0,
MAPID_SWORDMAN,
MAPID_MAGE,
MAPID_ARCHER,
@@ -86,118 +89,250 @@ enum {
MAPID_XMAS,
MAPID_SUMMER,
MAPID_GANGSI,
+ MAPID_SUMMONER,
+ MAPID_1_1_MAX,
+
//2-1 Jobs
- MAPID_SUPER_NOVICE = JOBL_2_1|0x0,
- MAPID_KNIGHT,
- MAPID_WIZARD,
- MAPID_HUNTER,
- MAPID_PRIEST,
- MAPID_BLACKSMITH,
- MAPID_ASSASSIN,
- MAPID_STAR_GLADIATOR,
- MAPID_REBELLION = JOBL_2_1|0x09,
- MAPID_KAGEROUOBORO = JOBL_2_1|0x0A,
- MAPID_DEATH_KNIGHT = JOBL_2_1|0x0E,
+ MAPID_SUPER_NOVICE = JOBL_2_1 | MAPID_NOVICE,
+ MAPID_KNIGHT = JOBL_2_1 | MAPID_SWORDMAN,
+ MAPID_WIZARD = JOBL_2_1 | MAPID_MAGE,
+ MAPID_HUNTER = JOBL_2_1 | MAPID_ARCHER,
+ MAPID_PRIEST = JOBL_2_1 | MAPID_ACOLYTE,
+ MAPID_BLACKSMITH = JOBL_2_1 | MAPID_MERCHANT,
+ MAPID_ASSASSIN = JOBL_2_1 | MAPID_THIEF,
+ MAPID_STAR_GLADIATOR = JOBL_2_1 | MAPID_TAEKWON,
+ // = JOBL_2_1 | MAPID_WEDDING,
+ MAPID_REBELLION = JOBL_2_1 | MAPID_GUNSLINGER,
+ MAPID_KAGEROUOBORO = JOBL_2_1 | MAPID_NINJA,
+ // = JOBL_2_1 | MAPID_XMAS,
+ // = JOBL_2_1 | MAPID_SUMMER,
+ MAPID_DEATH_KNIGHT = JOBL_2_1 | MAPID_GANGSI,
+ // = JOBL_2_1 | MAPID_SUMMONER,
+
//2-2 Jobs
- MAPID_CRUSADER = JOBL_2_2|0x1,
- MAPID_SAGE,
- MAPID_BARDDANCER,
- MAPID_MONK,
- MAPID_ALCHEMIST,
- MAPID_ROGUE,
- MAPID_SOUL_LINKER,
- MAPID_DARK_COLLECTOR = JOBL_2_2|0x0E,
+ // = JOBL_2_1 | MAPID_NOVICE,
+ MAPID_CRUSADER = JOBL_2_2 | MAPID_SWORDMAN,
+ MAPID_SAGE = JOBL_2_2 | MAPID_MAGE,
+ MAPID_BARDDANCER = JOBL_2_2 | MAPID_ARCHER,
+ MAPID_MONK = JOBL_2_2 | MAPID_ACOLYTE,
+ MAPID_ALCHEMIST = JOBL_2_2 | MAPID_MERCHANT,
+ MAPID_ROGUE = JOBL_2_2 | MAPID_THIEF,
+ MAPID_SOUL_LINKER = JOBL_2_2 | MAPID_TAEKWON,
+ // = JOBL_2_2 | MAPID_WEDDING,
+ // = JOBL_2_2 | MAPID_GUNSLINGER,
+ // = JOBL_2_2 | MAPID_NINJA,
+ // = JOBL_2_2 | MAPID_XMAS,
+ // = JOBL_2_2 | MAPID_SUMMER,
+ MAPID_DARK_COLLECTOR = JOBL_2_2 | MAPID_GANGSI,
+ // = JOBL_2_2 | MAPID_SUMMONER,
+
//Trans Novice And Trans 1-1 Jobs
- MAPID_NOVICE_HIGH = JOBL_UPPER|0x0,
- MAPID_SWORDMAN_HIGH,
- MAPID_MAGE_HIGH,
- MAPID_ARCHER_HIGH,
- MAPID_ACOLYTE_HIGH,
- MAPID_MERCHANT_HIGH,
- MAPID_THIEF_HIGH,
+ MAPID_NOVICE_HIGH = JOBL_UPPER | MAPID_NOVICE,
+ MAPID_SWORDMAN_HIGH = JOBL_UPPER | MAPID_SWORDMAN,
+ MAPID_MAGE_HIGH = JOBL_UPPER | MAPID_MAGE,
+ MAPID_ARCHER_HIGH = JOBL_UPPER | MAPID_ARCHER,
+ MAPID_ACOLYTE_HIGH = JOBL_UPPER | MAPID_ACOLYTE,
+ MAPID_MERCHANT_HIGH = JOBL_UPPER | MAPID_MERCHANT,
+ MAPID_THIEF_HIGH = JOBL_UPPER | MAPID_THIEF,
+ // = JOBL_UPPER | MAPID_TAEKWON,
+ // = JOBL_UPPER | MAPID_WEDDING,
+ // = JOBL_UPPER | MAPID_GUNSLINGER,
+ // = JOBL_UPPER | MAPID_NINJA,
+ // = JOBL_UPPER | MAPID_XMAS,
+ // = JOBL_UPPER | MAPID_SUMMER,
+ // = JOBL_UPPER | MAPID_GANGSI,
+ // = JOBL_UPPER | MAPID_SUMMONER,
+
//Trans 2-1 Jobs
- MAPID_LORD_KNIGHT = JOBL_UPPER|JOBL_2_1|0x1,
- MAPID_HIGH_WIZARD,
- MAPID_SNIPER,
- MAPID_HIGH_PRIEST,
- MAPID_WHITESMITH,
- MAPID_ASSASSIN_CROSS,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_NOVICE,
+ MAPID_LORD_KNIGHT = JOBL_UPPER | JOBL_2_1 | MAPID_SWORDMAN,
+ MAPID_HIGH_WIZARD = JOBL_UPPER | JOBL_2_1 | MAPID_MAGE,
+ MAPID_SNIPER = JOBL_UPPER | JOBL_2_1 | MAPID_ARCHER,
+ MAPID_HIGH_PRIEST = JOBL_UPPER | JOBL_2_1 | MAPID_ACOLYTE,
+ MAPID_WHITESMITH = JOBL_UPPER | JOBL_2_1 | MAPID_MERCHANT,
+ MAPID_ASSASSIN_CROSS = JOBL_UPPER | JOBL_2_1 | MAPID_THIEF,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_TAEKWON,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_WEDDING,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_GUNSLINGER,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_NINJA,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_XMAS,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_SUMMER,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_GANGSI,
+ // = JOBL_UPPER | JOBL_2_1 | MAPID_SUMMONER,
+
//Trans 2-2 Jobs
- MAPID_PALADIN = JOBL_UPPER|JOBL_2_2|0x1,
- MAPID_PROFESSOR,
- MAPID_CLOWNGYPSY,
- MAPID_CHAMPION,
- MAPID_CREATOR,
- MAPID_STALKER,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_NOVICE,
+ MAPID_PALADIN = JOBL_UPPER | JOBL_2_2 | MAPID_SWORDMAN,
+ MAPID_PROFESSOR = JOBL_UPPER | JOBL_2_2 | MAPID_MAGE,
+ MAPID_CLOWNGYPSY = JOBL_UPPER | JOBL_2_2 | MAPID_ARCHER,
+ MAPID_CHAMPION = JOBL_UPPER | JOBL_2_2 | MAPID_ACOLYTE,
+ MAPID_CREATOR = JOBL_UPPER | JOBL_2_2 | MAPID_MERCHANT,
+ MAPID_STALKER = JOBL_UPPER | JOBL_2_2 | MAPID_THIEF,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_TAEKWON,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_WEDDING,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_GUNSLINGER,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_NINJA,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_XMAS,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_SUMMER,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_GANGSI,
+ // = JOBL_UPPER | JOBL_2_2 | MAPID_SUMMONER,
+
//Baby Novice And Baby 1-1 Jobs
- MAPID_BABY = JOBL_BABY|0x0,
- MAPID_BABY_SWORDMAN,
- MAPID_BABY_MAGE,
- MAPID_BABY_ARCHER,
- MAPID_BABY_ACOLYTE,
- MAPID_BABY_MERCHANT,
- MAPID_BABY_THIEF,
+ MAPID_BABY = JOBL_BABY | MAPID_NOVICE,
+ MAPID_BABY_SWORDMAN = JOBL_BABY | MAPID_SWORDMAN,
+ MAPID_BABY_MAGE = JOBL_BABY | MAPID_MAGE,
+ MAPID_BABY_ARCHER = JOBL_BABY | MAPID_ARCHER,
+ MAPID_BABY_ACOLYTE = JOBL_BABY | MAPID_ACOLYTE,
+ MAPID_BABY_MERCHANT = JOBL_BABY | MAPID_MERCHANT,
+ MAPID_BABY_THIEF = JOBL_BABY | MAPID_THIEF,
+ // = JOBL_BABY | MAPID_TAEKWON,
+ // = JOBL_BABY | MAPID_WEDDING,
+ // = JOBL_BABY | MAPID_GUNSLINGER,
+ // = JOBL_BABY | MAPID_NINJA,
+ // = JOBL_BABY | MAPID_XMAS,
+ // = JOBL_BABY | MAPID_SUMMER,
+ // = JOBL_BABY | MAPID_GANGSI,
+ // = JOBL_BABY | MAPID_SUMMONER,
+
//Baby 2-1 Jobs
- MAPID_SUPER_BABY = JOBL_BABY|JOBL_2_1|0x0,
- MAPID_BABY_KNIGHT,
- MAPID_BABY_WIZARD,
- MAPID_BABY_HUNTER,
- MAPID_BABY_PRIEST,
- MAPID_BABY_BLACKSMITH,
- MAPID_BABY_ASSASSIN,
+ MAPID_SUPER_BABY = JOBL_BABY | JOBL_2_1 | MAPID_NOVICE,
+ MAPID_BABY_KNIGHT = JOBL_BABY | JOBL_2_1 | MAPID_SWORDMAN,
+ MAPID_BABY_WIZARD = JOBL_BABY | JOBL_2_1 | MAPID_MAGE,
+ MAPID_BABY_HUNTER = JOBL_BABY | JOBL_2_1 | MAPID_ARCHER,
+ MAPID_BABY_PRIEST = JOBL_BABY | JOBL_2_1 | MAPID_ACOLYTE,
+ MAPID_BABY_BLACKSMITH = JOBL_BABY | JOBL_2_1 | MAPID_MERCHANT,
+ MAPID_BABY_ASSASSIN = JOBL_BABY | JOBL_2_1 | MAPID_THIEF,
+ // = JOBL_BABY | JOBL_2_1 | MAPID_TAEKWON,
+ // = JOBL_BABY | JOBL_2_1 | MAPID_WEDDING,
+ // = JOBL_BABY | JOBL_2_1 | MAPID_GUNSLINGER,
+ // = JOBL_BABY | JOBL_2_1 | MAPID_NINJA,
+ // = JOBL_BABY | JOBL_2_1 | MAPID_XMAS,
+ // = JOBL_BABY | JOBL_2_1 | MAPID_SUMMER,
+ // = JOBL_BABY | JOBL_2_1 | MAPID_GANGSI,
+ // = JOBL_BABY | JOBL_2_1 | MAPID_SUMMONER,
+
//Baby 2-2 Jobs
- MAPID_BABY_CRUSADER = JOBL_BABY|JOBL_2_2|0x1,
- MAPID_BABY_SAGE,
- MAPID_BABY_BARDDANCER,
- MAPID_BABY_MONK,
- MAPID_BABY_ALCHEMIST,
- MAPID_BABY_ROGUE,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_NOVICE,
+ MAPID_BABY_CRUSADER = JOBL_BABY | JOBL_2_2 | MAPID_SWORDMAN,
+ MAPID_BABY_SAGE = JOBL_BABY | JOBL_2_2 | MAPID_MAGE,
+ MAPID_BABY_BARDDANCER = JOBL_BABY | JOBL_2_2 | MAPID_ARCHER,
+ MAPID_BABY_MONK = JOBL_BABY | JOBL_2_2 | MAPID_ACOLYTE,
+ MAPID_BABY_ALCHEMIST = JOBL_BABY | JOBL_2_2 | MAPID_MERCHANT,
+ MAPID_BABY_ROGUE = JOBL_BABY | JOBL_2_2 | MAPID_THIEF,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_TAEKWON,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_WEDDING,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_GUNSLINGER,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_NINJA,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_XMAS,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_SUMMER,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_GANGSI,
+ // = JOBL_BABY | JOBL_2_2 | MAPID_SUMMONER,
+
//3-1 Jobs
- MAPID_SUPER_NOVICE_E = JOBL_THIRD|JOBL_2_1|0x0,
- MAPID_RUNE_KNIGHT,
- MAPID_WARLOCK,
- MAPID_RANGER,
- MAPID_ARCH_BISHOP,
- MAPID_MECHANIC,
- MAPID_GUILLOTINE_CROSS,
+ MAPID_SUPER_NOVICE_E = JOBL_THIRD | JOBL_2_1 | MAPID_NOVICE,
+ MAPID_RUNE_KNIGHT = JOBL_THIRD | JOBL_2_1 | MAPID_SWORDMAN,
+ MAPID_WARLOCK = JOBL_THIRD | JOBL_2_1 | MAPID_MAGE,
+ MAPID_RANGER = JOBL_THIRD | JOBL_2_1 | MAPID_ARCHER,
+ MAPID_ARCH_BISHOP = JOBL_THIRD | JOBL_2_1 | MAPID_ACOLYTE,
+ MAPID_MECHANIC = JOBL_THIRD | JOBL_2_1 | MAPID_MERCHANT,
+ MAPID_GUILLOTINE_CROSS = JOBL_THIRD | JOBL_2_1 | MAPID_THIEF,
+ // = JOBL_THIRD | JOBL_2_1 | MAPID_TAEKWON,
+ // = JOBL_THIRD | JOBL_2_1 | MAPID_WEDDING,
+ // = JOBL_THIRD | JOBL_2_1 | MAPID_GUNSLINGER,
+ // = JOBL_THIRD | JOBL_2_1 | MAPID_NINJA,
+ // = JOBL_THIRD | JOBL_2_1 | MAPID_XMAS,
+ // = JOBL_THIRD | JOBL_2_1 | MAPID_SUMMER,
+ // = JOBL_THIRD | JOBL_2_1 | MAPID_GANGSI,
+ // = JOBL_THIRD | JOBL_2_1 | MAPID_SUMMONER,
+
//3-2 Jobs
- MAPID_ROYAL_GUARD = JOBL_THIRD|JOBL_2_2|0x1,
- MAPID_SORCERER,
- MAPID_MINSTRELWANDERER,
- MAPID_SURA,
- MAPID_GENETIC,
- MAPID_SHADOW_CHASER,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_NOVICE,
+ MAPID_ROYAL_GUARD = JOBL_THIRD | JOBL_2_2 | MAPID_SWORDMAN,
+ MAPID_SORCERER = JOBL_THIRD | JOBL_2_2 | MAPID_MAGE,
+ MAPID_MINSTRELWANDERER = JOBL_THIRD | JOBL_2_2 | MAPID_ARCHER,
+ MAPID_SURA = JOBL_THIRD | JOBL_2_2 | MAPID_ACOLYTE,
+ MAPID_GENETIC = JOBL_THIRD | JOBL_2_2 | MAPID_MERCHANT,
+ MAPID_SHADOW_CHASER = JOBL_THIRD | JOBL_2_2 | MAPID_THIEF,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_TAEKWON,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_WEDDING,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_GUNSLINGER,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_NINJA,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_XMAS,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_SUMMER,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_GANGSI,
+ // = JOBL_THIRD | JOBL_2_2 | MAPID_SUMMONER,
+
//Trans 3-1 Jobs
- MAPID_RUNE_KNIGHT_T = JOBL_THIRD|JOBL_UPPER|JOBL_2_1|0x1,
- MAPID_WARLOCK_T,
- MAPID_RANGER_T,
- MAPID_ARCH_BISHOP_T,
- MAPID_MECHANIC_T,
- MAPID_GUILLOTINE_CROSS_T,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_NOVICE,
+ MAPID_RUNE_KNIGHT_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_SWORDMAN,
+ MAPID_WARLOCK_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_MAGE,
+ MAPID_RANGER_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_ARCHER,
+ MAPID_ARCH_BISHOP_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_ACOLYTE,
+ MAPID_MECHANIC_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_MERCHANT,
+ MAPID_GUILLOTINE_CROSS_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_THIEF,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_TAEKWON,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_WEDDING,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_GUNSLINGER,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_NINJA,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_XMAS,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_SUMMER,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_GANGSI,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_1 | MAPID_SUMMONER,
+
//Trans 3-2 Jobs
- MAPID_ROYAL_GUARD_T = JOBL_THIRD|JOBL_UPPER|JOBL_2_2|0x1,
- MAPID_SORCERER_T,
- MAPID_MINSTRELWANDERER_T,
- MAPID_SURA_T,
- MAPID_GENETIC_T,
- MAPID_SHADOW_CHASER_T,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_NOVICE,
+ MAPID_ROYAL_GUARD_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_SWORDMAN,
+ MAPID_SORCERER_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_MAGE,
+ MAPID_MINSTRELWANDERER_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_ARCHER,
+ MAPID_SURA_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_ACOLYTE,
+ MAPID_GENETIC_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_MERCHANT,
+ MAPID_SHADOW_CHASER_T = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_THIEF,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_TAEKWON,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_WEDDING,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_GUNSLINGER,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_NINJA,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_XMAS,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_SUMMER,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_GANGSI,
+ // = JOBL_THIRD | JOBL_UPPER | JOBL_2_2 | MAPID_SUMMONER,
+
//Baby 3-1 Jobs
- MAPID_SUPER_BABY_E = JOBL_THIRD|JOBL_BABY|JOBL_2_1|0x0,
- MAPID_BABY_RUNE,
- MAPID_BABY_WARLOCK,
- MAPID_BABY_RANGER,
- MAPID_BABY_BISHOP,
- MAPID_BABY_MECHANIC,
- MAPID_BABY_CROSS,
+ MAPID_SUPER_BABY_E = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_NOVICE,
+ MAPID_BABY_RUNE = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_SWORDMAN,
+ MAPID_BABY_WARLOCK = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_MAGE,
+ MAPID_BABY_RANGER = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_ARCHER,
+ MAPID_BABY_BISHOP = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_ACOLYTE,
+ MAPID_BABY_MECHANIC = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_MERCHANT,
+ MAPID_BABY_CROSS = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_THIEF,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_TAEKWON,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_WEDDING,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_GUNSLINGER,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_NINJA,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_XMAS,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_SUMMER,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_GANGSI,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_1 | MAPID_SUMMONER,
+
//Baby 3-2 Jobs
- MAPID_BABY_GUARD = JOBL_THIRD|JOBL_BABY|JOBL_2_2|0x1,
- MAPID_BABY_SORCERER,
- MAPID_BABY_MINSTRELWANDERER,
- MAPID_BABY_SURA,
- MAPID_BABY_GENETIC,
- MAPID_BABY_CHASER,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_NOVICE,
+ MAPID_BABY_GUARD = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_SWORDMAN,
+ MAPID_BABY_SORCERER = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_MAGE,
+ MAPID_BABY_MINSTRELWANDERER = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_ARCHER,
+ MAPID_BABY_SURA = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_ACOLYTE,
+ MAPID_BABY_GENETIC = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_MERCHANT,
+ MAPID_BABY_CHASER = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_THIEF,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_TAEKWON,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_WEDDING,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_GUNSLINGER,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_NINJA,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_XMAS,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_SUMMER,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_GANGSI,
+ // = JOBL_THIRD | JOBL_BABY | JOBL_2_2 | MAPID_SUMMONER,
};
+STATIC_ASSERT(((MAPID_1_1_MAX - 1) | MAPID_BASEMASK) == MAPID_BASEMASK, "First class map IDs do not fit into MAPID_BASEMASK");
+
// Max size for inputs to Graffiti, Talkie Box and Vending text prompts
#define MESSAGE_SIZE (79 + 1)
// String length you can write in the 'talking box'
@@ -398,7 +533,7 @@ struct flooritem_data {
struct item item_data;
};
-enum status_point_types {
+enum status_point_types { //we better clean up this enum and change it name [Hemagx]
SP_SPEED,SP_BASEEXP,SP_JOBEXP,SP_KARMA,SP_MANNER,SP_HP,SP_MAXHP,SP_SP, // 0-7
SP_MAXSP,SP_STATUSPOINT,SP_0a,SP_BASELEVEL,SP_SKILLPOINT,SP_STR,SP_AGI,SP_VIT, // 8-15
SP_INT,SP_DEX,SP_LUK,SP_CLASS,SP_ZENY,SP_SEX,SP_NEXTBASEEXP,SP_NEXTJOBEXP, // 16-23
@@ -418,6 +553,7 @@ enum status_point_types {
SP_MOD_EXP=125,
SP_MOD_DROP=126,
SP_MOD_DEATH=127,
+ SP_BANKVAULT=128,
// Mercenaries
SP_MERCFLEE=165, SP_MERCKILLS=189, SP_MERCFAITH=190,
@@ -966,7 +1102,6 @@ struct map_interface {
char db_path[256];
char help_txt[256];
- char help2_txt[256];
char charhelp_txt[256];
char wisp_server_name[NAME_LENGTH];
@@ -993,9 +1128,9 @@ struct map_interface {
char server_id[32];
char server_pw[100];
char server_db[32];
- Sql* mysql_handle;
+ struct Sql *mysql_handle;
- int port;
+ uint16 port;
int users;
int enable_grf; //To enable/disable reading maps from GRF files, bypassing mapcache [blackhole89]
bool ip_set;
@@ -1003,16 +1138,16 @@ struct map_interface {
int16 index2mapid[MAX_MAPINDEX];
/* */
- DBMap* id_db; // int id -> struct block_list*
- DBMap* pc_db; // int id -> struct map_session_data*
- DBMap* mobid_db; // int id -> struct mob_data*
- DBMap* bossid_db; // int id -> struct mob_data* (MVP db)
- DBMap* map_db; // unsigned int mapindex -> struct map_data_other_server*
- DBMap* nick_db; // int char_id -> struct charid2nick* (requested names of offline characters)
- DBMap* charid_db; // int char_id -> struct map_session_data*
- DBMap* regen_db; // int id -> struct block_list* (status_natural_heal processing)
- DBMap* zone_db; // string => struct map_zone_data
- DBMap* iwall_db;
+ struct DBMap *id_db; // int id -> struct block_list*
+ struct DBMap *pc_db; // int id -> struct map_session_data*
+ struct DBMap *mobid_db; // int id -> struct mob_data*
+ struct DBMap *bossid_db; // int id -> struct mob_data* (MVP db)
+ struct DBMap *map_db; // unsigned int mapindex -> struct map_data_other_server*
+ struct DBMap *nick_db; // int char_id -> struct charid2nick* (requested names of offline characters)
+ struct DBMap *charid_db; // int char_id -> struct map_session_data*
+ struct DBMap *regen_db; // int id -> struct block_list* (status_natural_heal processing)
+ struct DBMap *zone_db; // string => struct map_zone_data
+ struct DBMap *iwall_db;
struct block_list **block_free;
int block_free_count, block_free_lock, block_free_list_size;
struct block_list **bl_list;
@@ -1146,7 +1281,7 @@ END_ZEROED_BLOCK;
int (*cleanup_sub) (struct block_list *bl, va_list ap);
- int (*delmap) (char* mapname);
+ int (*delmap) (const char *mapname);
void (*flags_init) (void);
bool (*iwall_set) (int16 m, int16 x, int16 y, int size, int8 dir, bool shootable, const char* wall_name);
@@ -1166,7 +1301,7 @@ END_ZEROED_BLOCK;
int (*freeblock_timer) (int tid, int64 tick, int id, intptr_t data);
int (*searchrandfreecell) (int16 m, const struct block_list *bl, int16 *x, int16 *y, int stack);
int (*count_sub) (struct block_list *bl, va_list ap);
- DBData (*create_charid2nick) (DBKey key, va_list args);
+ struct DBData (*create_charid2nick) (union DBKey key, va_list args);
int (*removemobs_sub) (struct block_list *bl, va_list ap);
struct mapcell (*gat2cell) (int gat);
int (*cell2gat) (struct mapcell cell);
@@ -1175,8 +1310,8 @@ END_ZEROED_BLOCK;
int (*sub_getcellp) (struct map_data *m, const struct block_list *bl, int16 x, int16 y, cell_chk cellchk);
void (*sub_setcell) (int16 m, int16 x, int16 y, cell_t cell, bool flag);
void (*iwall_nextxy) (int16 x, int16 y, int8 dir, int pos, int16 *x1, int16 *y1);
- DBData (*create_map_data_other_server) (DBKey key, va_list args);
- int (*eraseallipport_sub) (DBKey key, DBData *data, va_list va);
+ struct DBData (*create_map_data_other_server) (union DBKey key, va_list args);
+ int (*eraseallipport_sub) (union DBKey key, struct DBData *data, va_list va);
char* (*init_mapcache) (FILE *fp);
int (*readfromcache) (struct map_data *m, char *buffer);
int (*addmap) (const char *mapname);
@@ -1186,10 +1321,11 @@ END_ZEROED_BLOCK;
int (*waterheight) (char *mapname);
int (*readgat) (struct map_data *m);
int (*readallmaps) (void);
- int (*config_read) (char *cfgName);
- int (*config_read_sub) (char *cfgName);
- void (*reloadnpc_sub) (char *cfgName);
- int (*inter_config_read) (char *cfgName);
+ bool (*config_read) (const char *filename, bool imported);
+ bool (*read_npclist) (const char *filename, bool imported);
+ bool (*inter_config_read) (const char *filename, bool imported);
+ bool (*inter_config_read_database_names) (const char *filename, const struct config_t *config, bool imported);
+ bool (*inter_config_read_connection) (const char *filename, const struct config_t *config, bool imported);
int (*sql_init) (void);
int (*sql_close) (void);
bool (*zone_mf_cache) (int m, char *flag, char *params);
@@ -1197,9 +1333,9 @@ END_ZEROED_BLOCK;
unsigned short (*zone_str2skillid) (const char *name);
enum bl_type (*zone_bl_type) (const char *entry, enum map_zone_skill_subtype *subtype);
void (*read_zone_db) (void);
- int (*db_final) (DBKey key, DBData *data, va_list ap);
- int (*nick_db_final) (DBKey key, DBData *data, va_list args);
- int (*cleanup_db_sub) (DBKey key, DBData *data, va_list va);
+ int (*db_final) (union DBKey key, struct DBData *data, va_list ap);
+ int (*nick_db_final) (union DBKey key, struct DBData *data, va_list args);
+ int (*cleanup_db_sub) (union DBKey key, struct DBData *data, va_list va);
int (*abort_sub) (struct map_session_data *sd, va_list ap);
void (*update_cell_bl) (struct block_list *bl, bool increase);
int (*get_new_bonus_id) (void);