summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2013-01-09 14:46:35 -0800
committerBen Longbons <b.r.longbons@gmail.com>2013-01-17 17:35:36 -0800
commita8b4244aea48a5b7118acb2c136adcd50e8b650f (patch)
treea95bf533b4957bad68cdbaf6696246c76db009d4 /src
parent9ce6320afe61969aa0843655b9a1d69eea6b1de1 (diff)
downloadtmwa-a8b4244aea48a5b7118acb2c136adcd50e8b650f.tar.gz
tmwa-a8b4244aea48a5b7118acb2c136adcd50e8b650f.tar.bz2
tmwa-a8b4244aea48a5b7118acb2c136adcd50e8b650f.tar.xz
tmwa-a8b4244aea48a5b7118acb2c136adcd50e8b650f.zip
Begin to trim skills.
Diffstat (limited to 'src')
-rw-r--r--src/map/skill.cpp400
-rw-r--r--src/map/skill.hpp1
-rw-r--r--src/map/skill.t.hpp31
3 files changed, 1 insertions, 431 deletions
diff --git a/src/map/skill.cpp b/src/map/skill.cpp
index 98b6f7d..5488738 100644
--- a/src/map/skill.cpp
+++ b/src/map/skill.cpp
@@ -7401,7 +7401,6 @@ int skill_check_condition(struct map_session_data *sd, int type)
sp_rate = (lv <= 0) ? 0 : skill_db[skill].sp_rate[lv - 1];
zeny = skill_get_zeny(skill, lv);
weapon = skill_db[skill].weapon;
- SkillState state = skill_db[skill].state;
spiritball = (lv <= 0) ? 0 : skill_db[skill].spiritball[lv - 1];
mhp = skill_get_mhp(skill, lv); /* 消費HP */
for (int i = 0; i < 10; i++)
@@ -7622,101 +7621,6 @@ int skill_check_condition(struct map_session_data *sd, int type)
}
}
- switch (state)
- {
- case ST_HIDING:
- if (!bool(sd->status.option & Option::HIDE2))
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_CLOAKING:
- if (!bool(sd->status.option & Option::CLOAK))
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_HIDDEN:
- if (!pc_ishiding(sd))
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_RIDING:
- if (!pc_isriding(sd))
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_FALCON:
- if (!pc_isfalcon(sd))
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_CART:
- if (!pc_iscarton(sd))
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_SHIELD:
- if (sd->status.shield <= 0)
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_SIGHT:
- if (sd->sc_data[SC_SIGHT].timer == -1 && type & 1)
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_EXPLOSIONSPIRITS:
- if (sd->sc_data[SC_EXPLOSIONSPIRITS].timer == -1)
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_RECOV_WEIGHT_RATE:
- if (battle_config.natural_heal_weight_rate <= 100
- && sd->weight * 100 / sd->max_weight >=
- battle_config.natural_heal_weight_rate)
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- case ST_MOVE_ENABLE:
- {
- struct walkpath_data wpd;
- if (path_search(&wpd, sd->bl.m, sd->bl.x, sd->bl.y, sd->skillx, sd->skilly,
- 1) == -1)
- {
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- }
- break;
- case ST_WATER:
- if (map_getcell(sd->bl.m, sd->bl.x, sd->bl.y) != 3
- && (sd->sc_data[SC_DELUGE].timer == -1))
- { //水場判定
- clif_skill_fail(sd, skill, 0, 0);
- return 0;
- }
- break;
- }
-
for (int i = 0; i < 10; i++)
{
int x = lv % 11 - 1;
@@ -11641,7 +11545,7 @@ SP scan_stat(char *statname)
static
int skill_readdb(void)
{
- int j, k, l;
+ int j, k;
FILE *fp;
char line[1024], *p;
@@ -11766,308 +11670,6 @@ int skill_readdb(void)
fclose_(fp);
PRINTF("read db/skill_db.txt done\n");
- fp = fopen_("db/skill_require_db.txt", "r");
- if (fp == NULL)
- {
- PRINTF("can't read db/skill_require_db.txt\n");
- return 1;
- }
- while (fgets(line, 1020, fp))
- {
- char *split[51], *split2[MAX_SKILL_LEVEL];
- if (line[0] == '/' && line[1] == '/')
- continue;
- for (j = 0, p = line; j < 30 && p; j++)
- {
- while (*p == '\t' || *p == ' ')
- p++;
- split[j] = p;
- p = strchr(p, ',');
- if (p)
- *p++ = 0;
- }
- if (split[29] == NULL || j < 30)
- continue;
-
- SkillID i = SkillID(atoi(split[0]));
- if (/*i < SkillID() ||*/ i > MAX_SKILL_DB)
- continue;
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[1]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].hp[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[2]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].mhp[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[3]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].sp[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[4]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].hp_rate[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[5]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].sp_rate[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[6]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].zeny[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[7]; j < 32 && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < 32 && split2[k]; k++)
- {
- l = atoi(split2[k]);
- if (l == 99)
- {
- skill_db[i].weapon = 0xffffffff;
- break;
- }
- else
- skill_db[i].weapon |= 1 << l;
- }
-
- if (strcasecmp(split[8], "hiding") == 0)
- skill_db[i].state = ST_HIDING;
- else if (strcasecmp(split[8], "cloaking") == 0)
- skill_db[i].state = ST_CLOAKING;
- else if (strcasecmp(split[8], "hidden") == 0)
- skill_db[i].state = ST_HIDDEN;
- else if (strcasecmp(split[8], "riding") == 0)
- skill_db[i].state = ST_RIDING;
- else if (strcasecmp(split[8], "falcon") == 0)
- skill_db[i].state = ST_FALCON;
- else if (strcasecmp(split[8], "cart") == 0)
- skill_db[i].state = ST_CART;
- else if (strcasecmp(split[8], "shield") == 0)
- skill_db[i].state = ST_SHIELD;
- else if (strcasecmp(split[8], "sight") == 0)
- skill_db[i].state = ST_SIGHT;
- else if (strcasecmp(split[8], "explosionspirits") == 0)
- skill_db[i].state = ST_EXPLOSIONSPIRITS;
- else if (strcasecmp(split[8], "recover_weight_rate") == 0)
- skill_db[i].state = ST_RECOV_WEIGHT_RATE;
- else if (strcasecmp(split[8], "move_enable") == 0)
- skill_db[i].state = ST_MOVE_ENABLE;
- else if (strcasecmp(split[8], "water") == 0)
- skill_db[i].state = ST_WATER;
- else
- skill_db[i].state = ST_NONE;
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[9]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].spiritball[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
- skill_db[i].itemid[0] = atoi(split[10]);
- skill_db[i].amount[0] = atoi(split[11]);
- skill_db[i].itemid[1] = atoi(split[12]);
- skill_db[i].amount[1] = atoi(split[13]);
- skill_db[i].itemid[2] = atoi(split[14]);
- skill_db[i].amount[2] = atoi(split[15]);
- skill_db[i].itemid[3] = atoi(split[16]);
- skill_db[i].amount[3] = atoi(split[17]);
- skill_db[i].itemid[4] = atoi(split[18]);
- skill_db[i].amount[4] = atoi(split[19]);
- skill_db[i].itemid[5] = atoi(split[20]);
- skill_db[i].amount[5] = atoi(split[21]);
- skill_db[i].itemid[6] = atoi(split[22]);
- skill_db[i].amount[6] = atoi(split[23]);
- skill_db[i].itemid[7] = atoi(split[24]);
- skill_db[i].amount[7] = atoi(split[25]);
- skill_db[i].itemid[8] = atoi(split[26]);
- skill_db[i].amount[8] = atoi(split[27]);
- skill_db[i].itemid[9] = atoi(split[28]);
- skill_db[i].amount[9] = atoi(split[29]);
- }
- fclose_(fp);
- PRINTF("read db/skill_require_db.txt done\n");
-
- /* ? */
- fp = fopen_("db/skill_cast_db.txt", "r");
- if (fp == NULL)
- {
- PRINTF("can't read db/skill_cast_db.txt\n");
- return 1;
- }
- while (fgets(line, 1020, fp))
- {
- char *split[50], *split2[MAX_SKILL_LEVEL];
- memset(split, 0, sizeof(split)); // [Valaris] thanks to fov
- if (line[0] == '/' && line[1] == '/')
- continue;
- for (j = 0, p = line; j < 5 && p; j++)
- {
- while (*p == '\t' || *p == ' ')
- p++;
- split[j] = p;
- p = strchr(p, ',');
- if (p)
- *p++ = 0;
- }
- if (split[4] == NULL || j < 5)
- continue;
-
- SkillID i = SkillID(atoi(split[0]));
- if (/*i < SkillID() ||*/ i > MAX_SKILL_DB)
- continue;
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[1]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].cast[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[2]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].delay[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[3]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].upkeep_time[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[4]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].upkeep_time2[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
- }
- fclose_(fp);
- PRINTF("read db/skill_cast_db.txt done\n");
-
- fp = fopen_("db/skill_castnodex_db.txt", "r");
- if (fp == NULL)
- {
- PRINTF("can't read db/skill_castnodex_db.txt\n");
- return 1;
- }
- while (fgets(line, 1020, fp))
- {
- char *split[50], *split2[MAX_SKILL_LEVEL];
- memset(split, 0, sizeof(split));
- if (line[0] == '/' && line[1] == '/')
- continue;
- for (j = 0, p = line; j < 2 && p; j++)
- {
- while (*p == '\t' || *p == ' ')
- p++;
- split[j] = p;
- p = strchr(p, ',');
- if (p)
- *p++ = 0;
- }
-
- SkillID i = SkillID(atoi(split[0]));
- if (/*i < SkillID() ||*/ i > MAX_SKILL_DB)
- continue;
-
- memset(split2, 0, sizeof(split2));
- for (j = 0, p = split[1]; j < MAX_SKILL_LEVEL && p; j++)
- {
- split2[j] = p;
- p = strchr(p, ':');
- if (p)
- *p++ = 0;
- }
- for (k = 0; k < MAX_SKILL_LEVEL; k++)
- skill_db[i].castnodex[k] =
- (split2[k]) ? atoi(split2[k]) : atoi(split2[0]);
- }
- fclose_(fp);
- PRINTF("read db/skill_castnodex_db.txt done\n");
-
return 0;
}
diff --git a/src/map/skill.hpp b/src/map/skill.hpp
index 086b9cb..12021ff 100644
--- a/src/map/skill.hpp
+++ b/src/map/skill.hpp
@@ -30,7 +30,6 @@ struct skill_db
hp_rate[MAX_SKILL_LEVEL], sp_rate[MAX_SKILL_LEVEL],
zeny[MAX_SKILL_LEVEL];
int weapon;
- SkillState state;
int spiritball[MAX_SKILL_LEVEL];
int itemid[10], amount[10];
int castnodex[MAX_SKILL_LEVEL];
diff --git a/src/map/skill.t.hpp b/src/map/skill.t.hpp
index e286831..199114f 100644
--- a/src/map/skill.t.hpp
+++ b/src/map/skill.t.hpp
@@ -5,37 +5,6 @@
#include "../common/utils.hpp"
-// only ST_NONE is actually used - TODO remove
-enum class SkillState
-{
- ST_NONE,
-#define ST_NONE SkillState::ST_NONE
- ST_HIDING,
-#define ST_HIDING SkillState::ST_HIDING
- ST_CLOAKING,
-#define ST_CLOAKING SkillState::ST_CLOAKING
- ST_HIDDEN,
-#define ST_HIDDEN SkillState::ST_HIDDEN
- ST_RIDING,
-#define ST_RIDING SkillState::ST_RIDING
- ST_FALCON,
-#define ST_FALCON SkillState::ST_FALCON
- ST_CART,
-#define ST_CART SkillState::ST_CART
- ST_SHIELD,
-#define ST_SHIELD SkillState::ST_SHIELD
- ST_SIGHT,
-#define ST_SIGHT SkillState::ST_SIGHT
- ST_EXPLOSIONSPIRITS,
-#define ST_EXPLOSIONSPIRITS SkillState::ST_EXPLOSIONSPIRITS
- ST_RECOV_WEIGHT_RATE,
-#define ST_RECOV_WEIGHT_RATE SkillState::ST_RECOV_WEIGHT_RATE
- ST_MOVE_ENABLE,
-#define ST_MOVE_ENABLE SkillState::ST_MOVE_ENABLE
- ST_WATER,
-#define ST_WATER SkillState::ST_WATER
-};
-
// TODO remove most of these as their corresponding SkillIDs get deleted.
enum class StatusChange : uint16_t
{