Skip to content

Commit

Permalink
Damage Reduction
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://50.28.74.132/home/luminari/svn/luminari/myproject/trunk@1807 dda7f814-ccd3-4591-a6d7-1bd23e5e64af
  • Loading branch information
luminari committed Nov 10, 2014
1 parent 08ce57f commit 783cca3
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 3 deletions.
23 changes: 23 additions & 0 deletions nbproject/private/private.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,27 @@
<activeConfIndexElem>0</activeConfIndexElem>
</data>
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/mud_event.h</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/players.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/mud_event.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/structs.h</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/handler.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/traps.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/spell_parser.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/fight.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/comm.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/feats.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/constants.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/utils.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/feats.h</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/magic.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/utils.h</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/act.informative.c</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/spells.h</file>
<file>file:/D:/Users/jamclaug/Documents/NetBeansProjects/luminari/constants.h</file>
</group>
</open-files>
</project-private>
60 changes: 57 additions & 3 deletions players.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ long top_idnum = 0;
*/

/* local functions */
static void load_dr(FILE *fl, struct char_data *ch);
static void load_events(FILE *fl, struct char_data *ch);
static void load_affects(FILE *fl, struct char_data *ch);
static void load_skills(FILE *fl, struct char_data *ch);
Expand Down Expand Up @@ -383,7 +384,7 @@ int load_char(const char *name, struct char_data *ch) {
GET_TOTAL_AOO(ch) = 0;
GET_ACCOUNT_NAME(ch) = NULL;
LEVELUP(ch) = NULL;

GET_DR(ch) = NULL;
GET_DIPTIMER(ch) = PFDEF_DIPTIMER;
GET_CLAN(ch) = PFDEF_CLAN;
GET_CLANRANK(ch) = PFDEF_CLANRANK;
Expand Down Expand Up @@ -476,7 +477,8 @@ int load_char(const char *name, struct char_data *ch) {
break;

case 'D':
if (!strcmp(tag, "Desc")) ch->player.description = fread_string(fl, buf2);
if (!strcmp(tag, "DmgR")) load_dr(fl, ch);
else if (!strcmp(tag, "Desc")) ch->player.description = fread_string(fl, buf2);
else if (!strcmp(tag, "Dex ")) GET_REAL_DEX(ch) = atoi(line);
else if (!strcmp(tag, "Drnk")) GET_COND(ch, DRUNK) = atoi(line);
else if (!strcmp(tag, "Drol")) GET_REAL_DAMROLL(ch) = atoi(line);
Expand Down Expand Up @@ -1127,7 +1129,22 @@ void save_char(struct char_data * ch, int mode) {
}
fprintf(fl, "0 0 0 0 0 0 0 0\n");
}


/* Save Damage Reduction */
if (GET_DR(ch) != NULL) {
struct damage_reduction_type *dr;
int k = 0;

fprintf(f1, "DmgR:\n");

for(dr = GET_DR(ch); dr != NULL; dr = dr->next) {
fprintf(f1, "1 %d %d %d %d\n", dr->amount, dr->max_damage, dr->spell, dr->feat);
for (k = 0; k < MAX_DR_BYPASS; k++) {
fprintf(f1, "%d %d\n", dr->bypass_cat[k], dr->bypass_val[k])
}
}
fprintf("0");
}
write_aliases_ascii(fl, ch);
save_char_vars_ascii(fl, ch);

Expand Down Expand Up @@ -1277,7 +1294,44 @@ void clean_pfiles(void) {
/* After everything is done, we should rebuild player_index and remove the
* entries of the players that were just deleted. */
}
/* Load Damage Reduction - load_dr */
static void load_dr(FILE* f1, struct char_data *ch) {
struct damage_reduction_type *dr;
int i = 0, num, num2, num3, num4, num5, n_vars;
char line[MAX_INPUT_LENGTH + 1];

do {
get_line(f1, line);
n_vars = sscanf(line, "%d %d %d %d %d", &num, &num2, &num3, &num4, &num5);
if (num > 0) {
/* Set the DR data.*/
dr = CREATE(dr, struct damage_reduction_type, 1);

if (n_vars == 5) {
dr->amount = num2;
dr->max_damage = num3;
dr->spell = num4;
dr->feat = num5;

for (i = 0; i < MAX_DR_BYPASS; i++) {
get_line(f1, line);
n_vars = sscanf(line, "%d %d", &num2, &num3);
if (n_vars == 2) {
dr->bypass_cat[i] = num2;
dr->bypass_val[i] = num3;
} else {
log("SYSERR: Invalid dr bypass in pfile (%s), expecting 2 values", GET_NAME(ch));
}
}
dr->next = GET_DR(ch);
GET_DR(ch) = dr;
} else {
log("SYSERR: Invalid dr in pfile (%s), expecting 5 values", GET_NAME(ch));
}

} while (num != 0);
}

/* load_affects function now handles both 32-bit and
128-bit affect bitvectors for backward compatibility */
static void load_affects(FILE *fl, struct char_data *ch) {
Expand Down

0 comments on commit 783cca3

Please sign in to comment.