March 2020 Commit Log

Number of Commits:
59
Number of Active Developers:
3
partmedia 2020-03-21 13:36 Rev.: 21189

Reduce indirection

Submitted by: Frank Wilde <F.Wilde@casino2000.lu>

4 lines of code changed in 1 file:

partmedia 2020-03-21 13:36 Rev.: 21188

Refactor duplicate empty party removal code

Submitted by: Frank Wilde <F.Wilde@casino2000.lu>

19 lines of code changed in 1 file:

partmedia 2020-03-21 13:35 Rev.: 21187

Move same-party rejoin check to party_join()

Submitted by: Frank Wilde <F.Wilde@casino2000.lu>

9 lines of code changed in 2 files:

partmedia 2020-03-20 19:28 Rev.: 21184

Improve 'maps' command output

24 lines of code changed in 1 file:

partmedia 2020-03-20 19:28 Rev.: 21183

Add more sound events

6 lines of code changed in 3 files:

partmedia 2020-03-20 19:28 Rev.: 21182

Ignore sound_chance

1 lines of code changed in 2 files:

partmedia 2020-03-20 19:28 Rev.: 21181

Play sound for all kills

1 lines of code changed in 1 file:

partmedia 2020-03-20 19:28 Rev.: 21180

Make else exclusive

1 lines of code changed in 1 file:

partmedia 2020-03-20 19:28 Rev.: 21179

Generate batch scanner for more performance

1 lines of code changed in 1 file:

ryo_saeba 2020-03-18 13:28 Rev.: 21178

Remove unused function.

0 lines of code changed in 2 files:

akirschbaum 2020-03-14 16:40 Rev.: 21174

Remove unused code

1 lines of code changed in 3 files:

akirschbaum 2020-03-14 16:22 Rev.: 21173

Create proper objects in create_archetype()

1 lines of code changed in 1 file:

partmedia 2020-03-14 15:09 Rev.: 21172

Make inline

3 lines of code changed in 1 file:

akirschbaum 2020-03-14 14:56 Rev.: 21171

Place storage-class specifier at beginning of declaration

1 lines of code changed in 1 file:

akirschbaum 2020-03-14 14:45 Rev.: 21170

Make it a fatal error if the empty_archetype does not exist

2 lines of code changed in 1 file:

akirschbaum 2020-03-14 14:30 Rev.: 21169

Explicitly handle missing archetypes

4 lines of code changed in 1 file:

partmedia 2020-03-14 14:06 Rev.: 21168

Convert macros to functions

15 lines of code changed in 1 file:

partmedia 2020-03-14 14:06 Rev.: 21167

Un-nest else

15 lines of code changed in 1 file:

partmedia 2020-03-14 14:06 Rev.: 21166

Improve StringBuffer allocation policy

A new StringBuffer is created for every object written or swapped.
Increasing the initial size from 256 to 512 drastically reduces the
likelihood that save_object() needs to realloc().

Change growth rate from linear (+256) to geometric (1.5x).

15 lines of code changed in 1 file:

partmedia 2020-03-14 02:47 Rev.: 21165

Make find_insert_pos() much faster

When loading a map, this function used to take O(n^2). It searched
through all objects on a tile until it found the top. If INS_MAP_LOAD is
set, it throws away the result and uses the invariant GET_MAP_TOP. If
INS_ABOVE_FLOOR_ONLY is set, it throws that result away and uses the
floor it found earlier.

During map load, it is really INS_ON_TOP that matters. In that case,
check for that flag first and return immediately using the invariant,
without doing the O(n) search. Otherwise, do the search and return the
topmost floor or the topmost free space.

Since players like to put their things in large piles, this change
drastically reduces the time taken to load maps like player apartments.

5 lines of code changed in 1 file:

partmedia 2020-03-14 02:47 Rev.: 21164

Refactor logic into separate function

39 lines of code changed in 1 file:

partmedia 2020-03-14 02:47 Rev.: 21163

Do less work with INS_MAP_LOAD

21 lines of code changed in 1 file:

partmedia 2020-03-14 02:13 Rev.: 21162

Add profiling for load_objects()

6 lines of code changed in 1 file:

partmedia 2020-03-14 02:13 Rev.: 21161

Add profiling macros

16 lines of code changed in 1 file:

partmedia 2020-03-14 02:13 Rev.: 21160

Fix build

1 lines of code changed in 1 file:

akirschbaum 2020-03-13 14:06 Rev.: 21159

Fix some crashes caused by accesses to missing archetypes

218 lines of code changed in 17 files:

partmedia 2020-03-13 12:58 Rev.: 21158

Return NULL if searching for the 0 skill

No skill has a subtype of 0; in fact, item_types uses 0 to represent
item types that cannot be identified with a skill.

However, due to a separate issue, find_skill_by_number() may find skill
tools with a matching subtype of 0 but no skill associated with it
(since skills have subtypes correctly set). Then adjust_skill_tool()
will try to give the player a new skill, which might duplicate a skill
the player already has.

4 lines of code changed in 1 file:

partmedia 2020-03-13 12:58 Rev.: 21157

Set swapped map timeout to 0

1 lines of code changed in 1 file:

partmedia 2020-03-13 12:58 Rev.: 21156

Run map change events when entering a tiled map

25 lines of code changed in 3 files:

partmedia 2020-03-13 12:58 Rev.: 21155

Fix warning by marking argument unsigned

2 lines of code changed in 2 files:

partmedia 2020-03-13 12:58 Rev.: 21154

Use strlcpy() instead of snprintf()

68 lines of code changed in 25 files:

akirschbaum 2020-03-13 12:29 Rev.: 21153

Fix typo

1 lines of code changed in 1 file:

partmedia 2020-03-12 00:54 Rev.: 21152

Add error message for observed crash

7 lines of code changed in 1 file:

partmedia 2020-03-12 00:06 Rev.: 21151

Limit number of map swaps per tick

Swapping can take many tens of milliseconds. Swapping too many maps in
one tick can cause enough latency for the server to skip time.

10 lines of code changed in 1 file:

ryo_saeba 2020-03-11 16:38 Rev.: 21150

Fix leaks.

6 lines of code changed in 2 files:

ryo_saeba 2020-03-11 15:52 Rev.: 21149

Fix uninitialized value.

1 lines of code changed in 1 file:

ryo_saeba 2020-03-11 15:02 Rev.: 21148

Fix more leaks.

5 lines of code changed in 4 files:

ryo_saeba 2020-03-11 14:31 Rev.: 21147

Fix some memory leaks.

47 lines of code changed in 29 files:

partmedia 2020-03-11 14:08 Rev.: 21146

Profile mapfile_load() and save_map()

14 lines of code changed in 1 file:

partmedia 2020-03-11 14:08 Rev.: 21145

Make timespec_diff() available to other files

2 lines of code changed in 2 files:

partmedia 2020-03-11 11:25 Rev.: 21144

Retire MAX_OBJECTS

MAX_OBJECTS has probably outlived its usefulness. It was previously "no
hard limit," only serving to trigger map swapping immediately after
loading a map, if the number of used objects exceeded MAX_OBJECTS.

At worse case, MAX_OBJECTS causes an O(n^2) search and O(n) swaps, where
n is the number of maps in memory. This happens immediately after
loading a very large map. The server takes O(n) to search for the map
with the smallest remaining timeout and swaps it, and does this n times
or until enough memory is freed. If the other maps are small, this does
not free much memory and causes the "performance hit" mentioned in the
comments. This was observed on Invidious, where the server experienced
delays of up to 700 ms immediately after loading a large map due to
excessive swapping.

Removing MAX_OBJECTS does not significantly change the server's
allocation pattern because the server never frees memory (it maintains
an internal free list) and because maps are swapped out based on timeout
at the end of each tick anyway.

2 lines of code changed in 6 files:

partmedia 2020-03-08 20:49 Rev.: 21143

Improve 'malloc' command output

29 lines of code changed in 1 file:

partmedia 2020-03-08 20:49 Rev.: 21142

Report skipped time in milliseconds

1 lines of code changed in 1 file:

partmedia 2020-03-08 20:49 Rev.: 21141

Remove PlM column from 'maps' command

m->players should never disagree with players_on_map(m, FALSE), so this
column is redundant.

3 lines of code changed in 1 file:

partmedia 2020-03-08 20:49 Rev.: 21140

Revert "Reduce calls to monster_compute_path"

This change caused several crashes on Invidious:

Program terminated with signal SIGSEGV, Segmentation fault.
853: FOR_MAP_PREPARE(op->map, op->x+freearr_x[rv.direction], op->y+freearr_y[rv.direction], tmp)

1 lines of code changed in 1 file:

partmedia 2020-03-07 02:53 Rev.: 21138

Undo project name change

This not only changes the name of the distfile, but the directory where
the server looks for its config, var, and shared files. Undo this change
until a permanent fix can be made.

1 lines of code changed in 1 file:

partmedia 2020-03-05 17:05 Rev.: 21137

Clean up warnings about junk files

1 lines of code changed in 1 file:

partmedia 2020-03-05 16:55 Rev.: 21136

Update top-level EXTRA_DIST

1 lines of code changed in 2 files:

partmedia 2020-03-05 16:55 Rev.: 21135

Prune whitespace

0 lines of code changed in 1 file:

partmedia 2020-03-05 16:55 Rev.: 21134

Revert "Fix bug #809 -- Server: configure doesn't check for flex."

configure does check for lex, and sets it to ':' if it can't find it, so
that end users of the source distribution do not need lex installed in
order to build the server.

Also prefer AM_PROG_LEX over AC_PROG_LEX, because it uses the missing
script on systems that do not have lex.

1 lines of code changed in 1 file:

partmedia 2020-03-05 01:35 Rev.: 21133

Fix source distribution

18 lines of code changed in 9 files:

partmedia 2020-03-05 01:35 Rev.: 21132

Rename built treasures file to simplify install

5 lines of code changed in 2 files:

partmedia 2020-03-04 21:56 Rev.: 21131

Call apply_manual() instead of ob_apply()

When a monster reads a scroll, the monster should be subject to the
usual race restriction check before applying it.

1 lines of code changed in 1 file:

partmedia 2020-03-04 21:56 Rev.: 21130

Move apply event hook from apply_manual() to ob_apply()

Some code paths call ob_apply() directly without going through
apply_manual(). In these cases, the apply event hook is not run.

7 lines of code changed in 2 files:

partmedia 2020-03-04 19:47 Rev.: 21129

Fix transport type apply method return values

8 lines of code changed in 1 file:

partmedia 2020-03-02 22:48 Rev.: 21128

Chase arch move

11 lines of code changed in 2 files:

partmedia 2020-03-02 22:40 Rev.: 21127

Move non-generated files from server/lib/ to arch/

Logically, these files belong with the archs, since if the archs change,
these files may need to change, too. Moving them to arch should also
remove the need for those running with custom maps/archs from needing
to change the server tree.

0 lines of code changed in 7 files:

ryo_saeba 2020-03-02 15:13 Rev.: 21126

Fix hardcoded 'chest' name.

5 lines of code changed in 1 file:

ryo_saeba 2020-03-02 14:42 Rev.: 21124

Allow multiple skills to share the same subtype.
This is useful for skills like harvesting (fishing, mining, and such) which work similarly and only differ in the skill.
As a side-effect, skill_names is no more indexed by the skill's subtype.

63 lines of code changed in 10 files:

February 2020 »

Generated by StatSVN 0.7.0