Fix Horn of Sirens
Players in possession of a Horn of Sirens now only have horns. Fix by
adding the artifact back, but setting the chance to 0.
16 lines of code changed in 1 file:
Refactor monster_npc_call_help()
7 lines of code changed in 1 file:
Refactor; remove notes about performance
There is probably no performance benefit from reducing the number of
calls to mapdata_cell(). However, this particular change made the code
more readable, so keep this change. I refactored the scope of the new
temporary MapCell variables.
I compared the assembly of the old code with the new code. I used clang
8.0.1 with -O2 on FreeBSD/amd64. In both versions, the assembly has
mapdata_cell() inlined and lifted out of the inner loop:
movq the_map(%rip), %r12
movslq %edi, %r13
movslq %esi, %rax
imulq $152, %rax, %r15
movq (%r12,%r13,8), %rdi
addq %r15, %rdi
Even though the old code has multiple calls and the new code has an
intermediate variable, both generated the same code! Notice how the
result of "calling" mapdata_cell() is never stored in memory; it stays
in a register.
In general, in the age of deep pipelines, large caches, and speculative
execution, even comparing assembly is generally not enough. However,
when both versions produce the same assembly, it's a pretty convincing
argument that there is no performance benefit.
There are plenty of inefficiencies hanging around in the client, for
example, the unnecessary double-buffering in Pixmap mode, that when
fixed would produce a measurable performance benefit. But trying to
outsmart the compiler probably isn't going to do much.
3 lines of code changed in 2 files:
Reduce severity of artifacts lacking a random chance to debug.
This should be possible and may not be in error.
7 lines of code changed in 2 files:
Reduce calls to mapdata_cell
19 lines of code changed in 2 files:
Add Serf's House
1011 lines of code changed in 2 files:
Add citylife to scorncounty
33 lines of code changed in 1 file:
Add more farmland outside Scorn
Add more farmland in the style of a manor outside Scorn.
533 lines of code changed in 5 files:
Add formulas for casting and melting rings and amulets
40 lines of code changed in 1 file:
Refactor recipe_chance()
Rewrite and document recipe_chance() so it's more clear what it does.
30 lines of code changed in 2 files:
Stop another warning about magic items without inventory
2 lines of code changed in 1 file:
Send weight update after object_decrease_nrof()
This fixes bugs/804, where eating food out of a container in the
player's inventory doesn't update the displayed container weight.
2 lines of code changed in 1 file:
Do not send upditem for unsent items
Sometimes, we try to update an item that we haven't sent to the client.
Don't! This can happen, for example, when a button under the floor gets
toggled, but objects under floor tiles are generally not sent. There are
some other places where this happens that we haven't tracked down, but
in general, just don't.
8 lines of code changed in 2 files:
Improve findsmooth warning
Try to find a smoothing face, or the default smoothing face. If this
fails, set NS_FACESENT_SMOOTH so we don't try to send it again.
Failures are usually due to map makers changing the face of a ground
tile, but forgetting to unset smoothlevel.
10 lines of code changed in 1 file:
Check object is player before calling QuestGetState()
50 lines of code changed in 5 files:
Update item name when applying item
Applying an item identifies its enchantment, which changes the base
name. Send the client a name update.
1 lines of code changed in 1 file:
Always check weight in check_spell_knockback()
Since we check for nonzero weight in check_spell_knockback() anyway, do
the check there and don't warn about it being nonzero.
7 lines of code changed in 1 file:
Stop warning about magic items without inventory
Some magical items like horn bases are not associated with a spell.
2 lines of code changed in 1 file:
Rename 'quit' command to 'delete'
Make it harder to delete a character by renaming 'quit' to 'delete'. New
players have been known to accidentally delete their character despite
the warning.
16 lines of code changed in 3 files:
Correctly find default language for new players
The default language for new players should be set to -1, not 0, in
order for the server to correctly set the language to the default.
1 lines of code changed in 1 file:
Bump version string to 1.74.0
4 lines of code changed in 2 files:
Added added white cloak and black cloak to Museum of Arms (navar_city/magara/houses/museum) map in Navar. Requires archetype update r20943 or newer.
69 lines of code changed in 1 file:
Fix typo in High Shield magic mouth message in Museum of Arms (navar_city/magara/houses/museum) map in Navar.
1 lines of code changed in 1 file:
Added kite shield to Museum of Arms (navar_city/magara/houses/museum) map in Navar. Requires archetype update r21039 or newer.
47 lines of code changed in 1 file:
Stop logging normal conditions as errors
5 lines of code changed in 2 files:
Reduce calls to monster_compute_path
27 lines of code changed in 2 files:
Defererence pl->contr once in draw_client_map2, and assume it will not change in the middle.
26 lines of code changed in 1 file:
Silence warning from snprintf overflow potential.
1 lines of code changed in 1 file:
Reduce dereferences in draw_client_map2
9 lines of code changed in 2 files:
Make draw_client_map2 a static function, since it is used only in request.c.
3 lines of code changed in 3 files:
Reduce recursion in set_wall()
14 lines of code changed in 2 files:
Move a continue statement that would trigger on all loop passes to outer loop.
4 lines of code changed in 1 file:
Fix missed adjustment of clear_los parameter.
1 lines of code changed in 1 file:
Add amount over to message for ticks longer than server tick time.
2 lines of code changed in 2 files:
Trivial changes of object * to player * in los calculations.
31 lines of code changed in 5 files:
Fix incorrect exit coordinates on Alfalfa's House ground level.
6 lines of code changed in 2 files: