Commit graph

445 commits

Author SHA1 Message Date
Thomas Arp
a60f0eefb8 Minor bugfix in code that should be unreachable.
We already log that we update, but no update was taking place.
2020-03-07 23:22:01 +01:00
Thomas Arp
53870eba5d Added further failsafes to prevent dereferencing free'd objects
"obj" variable is not updated here, so we must lookup to see if it has
been free'd in script_driver().

Fixes #83
2020-03-01 01:27:57 +01:00
Thomas Arp
d5a11618f1 Remove crash bug when purging a dropped item in a wtrigger.
We're leveraging the lookup table, because it's a safer way
to see if an object has been free'd than looking at the object
itself (which while it may work may just as well fail).

Fixes #83
2020-03-01 01:19:06 +01:00
Thomas Arp
eb650c2811
GitHub issues 78 79 81 num aff flags off by one (#82)
* Make sure all followers are free'd before freeing the character list

Otherwise, the followers structs will point to free'd memory and
the stop_follower call will attempt to dereference a free'd
characters' followers list.

* https://github.com/tbamud/tbamud/issues/79 typo

* https://github.com/tbamud/tbamud/issues/81 nullpointer crash on syntax check run

* NUM_AFF_FLAGS fix.

Now, consistently, the NUM_AFF_FLAGS is used in the same way as other
NUM_* variables. Specifically, the the number is consistent with
how others are defined - 1 above the highest in the list.

I would like to have removed the need to start from 1 instead of 0
as well, but the loading mechanism, and thus potentially a lot of
existing object files, use 0 as a marker for "no flags set", and
we can't easily fix that. So, the places we loop through the list,
we still need to make sure we're stying within the [1;NUM_AFF_FLAGS) interval.

Simultaneously, I've checked over the other flags, and it seems like
the usage is pretty consistent there.

Fixes https://github.com/tbamud/tbamud/issues/78
2020-02-25 18:39:29 -05:00
Thomas Arp
7f0acefcb4 Confusing code fix (#76)
* Make sure all followers are free'd before freeing the character list

Otherwise, the followers structs will point to free'd memory and
the stop_follower call will attempt to dereference a free'd
characters' followers list.

* Make sure %target% works in act triggers

* code cleanup. Remove inline block, make variable names more understandable.

Ref https://www.tbamud.com/forum/4-development/4525-confused-over-piece-of-code-in-parse-room
2020-01-26 16:19:10 -05:00
Thomas Arp
1ab51a0545 Make sure all followers are free'd before freeing the character list (#75)
Otherwise, the followers structs will point to free'd memory and
the stop_follower call will attempt to dereference a free'd
characters' followers list.
2020-01-19 08:44:21 -05:00
Rumble
4214a3e31e Updated for 2020 release 2020-01-14 20:02:24 +01:00
Thomas Arp
29f19f9ce5 Fixes for w-format-truncation. Also, export of zones work again on linux 2020-01-11 01:05:32 +01:00
Fiztba
0a9cab1109 Zonereset Fix (#60)
* Fixed Zoneresets Confirmation Message

* Quick fix for Zonereset Toggle
2019-11-05 08:15:09 -05:00
Cat
43bf0e8f84 Make builds work on FreeBSD and OpenBSD (#58)
* make Makefile more portable

tbamud doesn't build on FreeBSD or OpenBSD.  This series of commits are meant to make those builds work by making the Makefile more portable.
I should mention that I've never used tbamud before today, so please read my pull request carefully.

This commit itself fixes the first issue encountered.  I assume wildcard and patsubst are gmake-only.

* Update Makefile.in

It turns out using the backslash to escape newlines in this situation is not portable.

* Delete Makefile.in

Will re-add.  There are problems with this file.  It's marked executable when it shouldn't be, and has ^M characters which prevent builds on OpenBSD.

* re-add Makefile.in
2019-04-30 07:57:21 -04:00
Rumble
674fbfddf1 Updated for 2019 release 2019-01-19 23:25:38 +00:00
wyld-sw
7c5e92d4c7 Corrected logic preventing writing mobile records. 2018-12-27 15:29:53 -05:00
Kevin Fischer
3cb8e52043 Fix error in "last all" command and several -Wunused-result compiler errors (#55)
* Add build generated files to .gitignore

* Fix error in "last all" output and resolve Wunused-result warnings

- Check return value of several standard library calls that could
return error states.
- Fix issue with "last all" command (it sent tabs for alignment
that were reinterpreted as colors).

* Fix buffer overflow in do_export_zone command
2018-07-21 19:37:18 -04:00
Kevin Fischer
b27003e881 Make some string ops bounded and fix bug in editor toggle command (#54)
* Replace a few strcat/sprintf instances with bounded variants

Also cleaned up the whitespace in the parse_edit_action function as it was
not consistent.

Fix bug in editor format command introduced in earlier commit

* Fix bug in editor toggle command when an escaped @ is in the buffer

Previously, toggling between @ and \t would always try to convert
@ to \t, even if already toggled, iff an escaped @ was present in the
buffer (i.e. '@@').
2018-07-16 05:17:45 -04:00
Kevin Fischer
14855c273a Fix string truncation warnings (Wstringop-truncation) (#53) 2018-07-15 17:23:26 -04:00
Kevin Fischer
ad88f94a46 Fix format overflow issues (#52)
Replace a few sprintf calls with snprintf to prevent buffer overflow.
Added error messages to the logs where buffer size prevents a room,
object, mobile, or quest from being saved to disk.
2018-07-15 11:52:27 -04:00
wyld-sw
bf941bc9b2 Removed dead stores. 2018-07-15 10:33:06 -04:00
Kevin Fischer
5cca63a01c Resolve Wrestrict warnings on GCC 8.1.1 (#51)
* Fix several misleading indentation warnings on GCC 8.1.1

* Fix reliance on undefined strcpy/sprintf behavior (-Wrestrict warnings)

The standard states that strcpy results in undefined behavior when the source
and destination buffers overlap. I resolved this with a combination of memmove
and strlen. Note that the resulting code is slightly less efficient.

Similarly, sprintf's behavior is undefined when copying takes place between
objects that overlap. I replaced most of these with a simple strcat, though
one required a temp buffer.

* Fix format in improved-edit.c to match surrounding code
2018-07-14 14:11:47 -04:00
Kevin Fischer
f9903c05b3 Fix several misleading indentation warnings on GCC 8.1.1 (#50) 2018-07-14 12:31:20 -04:00
wyld-sw
c0ac6069f6 Reverted unintentional change affecting minimap placement. 2018-07-08 17:09:40 -04:00
Thomas Arp
d070a188f6 Revert "Multiple keyword support (#46)"
This reverts commit 168f6df
2018-04-12 22:50:38 +02:00
Thomas Arp
b57e3d1ad7 Make sure vict is valid_dg_target in do_mteleport (#48)
Also, trigger world enter trigger for the newly moved target, not the caller.
2018-04-07 11:13:27 -04:00
Bobsson
168f6df908 Multiple keyword support (#46)
* Support for multiple keywords in item commands

* Free the new array so we don't leak memory
2018-03-18 17:09:38 -04:00
Nauzhror
4ff9d28054 do_detach (#45)
Made detach able to remove triggers from rooms you are not in. Made its argument handling better match the usage syntax when targeting rooms. Removed player attachable script check because it is possible to have scripts attached from before the functionality was deactivated. Made confirmation messages more informative.
2018-02-16 21:43:08 -05:00
Paul Clarke
41da68bdb0 DG Scripts bug fixes (#44)
* Increase ID space

DG Scripts uses tiny idspace that results in wacky bugs when the mud is
running too long.

* Overhaul script ids

All references to GET_ID(ch/obj) were removed and replaced by
char_script_id() and obj_script_id(), which don’t assign ids until they
are needed. The ch->id and obj->id variable names were changed to
script_id to prevent accidental errors for future programmers. This
change greatly increases how long the mud can run before it runs out of
ID space.

* Fix extraction count

This prevents an error log where it has over-counted the extractions
pending. It now behaves correctly when the same mob is %purge%’d or
extract_char()’d twice.
2018-02-15 14:06:35 -05:00
Nauzhror
d7a50664ea Just a warning fix (#43)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.

* Fixed look 2.mail

Also reverted CMMAND_TERMS, was increased in previous commit when it didn't need to be due to the removed of marena.

* Fixed add_to_lookup_table

Fixed as per  Welcor https://www.tbamud.com/forum/2-general/4307-crash-bug-need-assistance-with-gdb?start=20#7390

* Fixed two crash bugs

Fixed tw crash bugs Welcor found here https://www.tbamud.com/forum/4-development/4300-simple-list-forced-to-reset-itself

* wizhelp changes

Cleared buf in columns_list that was getting garbage data in it. Removed wizhelp subcommand from do_commands, and removed buf and sprintf line that were never sent to anyone and replaced it with a send_to_char. Removed arg capability from do_commands as it's no longer useful without the wizhelp subcommand. Replaced wizhelp subcommand with separate do_wizhelp command that sorts commands by their level and shows all imms all imm commands regardless of their level.

* Fix

Fixed previous commit

* Trigedit Mostly

Changed attributes to persist across logout when changed in trigedit. Made strength now loer for GRGOD and above when wearing equipment. Added npcflag field to trigedit. Fixed %actor.vnum()%

* Log Files

Fixed Farbled Data in Logfiles. Fix from Prool on forums.

* Mudlog, Trigedit, New Pref Toggle

Skimmed every call of mudlog for missing GET_INVIS_LEV and other obvious inconsistencies. Added affect_total() cals to dg_variables so stats adjust properly. Added zoneresets toggle to prefedit because syslog complete is super spammy as a result of zone resets so tey're now separate from other syslog options.

* npcflag fix

Just fixing a warning.
2018-02-15 11:09:51 -05:00
Nauzhror
79e7ab10ea Mostly Mudlog (#42)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.

* Fixed look 2.mail

Also reverted CMMAND_TERMS, was increased in previous commit when it didn't need to be due to the removed of marena.

* Fixed add_to_lookup_table

Fixed as per  Welcor https://www.tbamud.com/forum/2-general/4307-crash-bug-need-assistance-with-gdb?start=20#7390

* Fixed two crash bugs

Fixed tw crash bugs Welcor found here https://www.tbamud.com/forum/4-development/4300-simple-list-forced-to-reset-itself

* wizhelp changes

Cleared buf in columns_list that was getting garbage data in it. Removed wizhelp subcommand from do_commands, and removed buf and sprintf line that were never sent to anyone and replaced it with a send_to_char. Removed arg capability from do_commands as it's no longer useful without the wizhelp subcommand. Replaced wizhelp subcommand with separate do_wizhelp command that sorts commands by their level and shows all imms all imm commands regardless of their level.

* Fix

Fixed previous commit

* Trigedit Mostly

Changed attributes to persist across logout when changed in trigedit. Made strength now loer for GRGOD and above when wearing equipment. Added npcflag field to trigedit. Fixed %actor.vnum()%

* Log Files

Fixed Farbled Data in Logfiles. Fix from Prool on forums.

* Mudlog, Trigedit, New Pref Toggle

Skimmed every call of mudlog for missing GET_INVIS_LEV and other obvious inconsistencies. Added affect_total() cals to dg_variables so stats adjust properly. Added zoneresets toggle to prefedit because syslog complete is super spammy as a result of zone resets so tey're now separate from other syslog options.
2018-02-15 10:55:18 -05:00
Nauzhror
34b7f5b00c Mostly Trigedit Changes (#41)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.

* Fixed look 2.mail

Also reverted CMMAND_TERMS, was increased in previous commit when it didn't need to be due to the removed of marena.

* Fixed add_to_lookup_table

Fixed as per  Welcor https://www.tbamud.com/forum/2-general/4307-crash-bug-need-assistance-with-gdb?start=20#7390

* Fixed two crash bugs

Fixed tw crash bugs Welcor found here https://www.tbamud.com/forum/4-development/4300-simple-list-forced-to-reset-itself

* wizhelp changes

Cleared buf in columns_list that was getting garbage data in it. Removed wizhelp subcommand from do_commands, and removed buf and sprintf line that were never sent to anyone and replaced it with a send_to_char. Removed arg capability from do_commands as it's no longer useful without the wizhelp subcommand. Replaced wizhelp subcommand with separate do_wizhelp command that sorts commands by their level and shows all imms all imm commands regardless of their level.

* Fix

Fixed previous commit

* Trigedit Mostly

Changed attributes to persist across logout when changed in trigedit. Made strength now loer for GRGOD and above when wearing equipment. Added npcflag field to trigedit. Fixed %actor.vnum()%
2018-02-12 20:11:08 -05:00
Nauzhror
c8895b57d1 do_commands fix (#40)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.

* Fixed look 2.mail

Also reverted CMMAND_TERMS, was increased in previous commit when it didn't need to be due to the removed of marena.

* Fixed add_to_lookup_table

Fixed as per  Welcor https://www.tbamud.com/forum/2-general/4307-crash-bug-need-assistance-with-gdb?start=20#7390

* Fixed two crash bugs

Fixed tw crash bugs Welcor found here https://www.tbamud.com/forum/4-development/4300-simple-list-forced-to-reset-itself

* wizhelp changes

Cleared buf in columns_list that was getting garbage data in it. Removed wizhelp subcommand from do_commands, and removed buf and sprintf line that were never sent to anyone and replaced it with a send_to_char. Removed arg capability from do_commands as it's no longer useful without the wizhelp subcommand. Replaced wizhelp subcommand with separate do_wizhelp command that sorts commands by their level and shows all imms all imm commands regardless of their level.

* Fix

Fixed previous commit
2018-01-28 10:49:00 -05:00
Nauzhror
2a62eb3f4d Wizhelp (#39)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.

* Fixed look 2.mail

Also reverted CMMAND_TERMS, was increased in previous commit when it didn't need to be due to the removed of marena.

* Fixed add_to_lookup_table

Fixed as per  Welcor https://www.tbamud.com/forum/2-general/4307-crash-bug-need-assistance-with-gdb?start=20#7390

* Fixed two crash bugs

Fixed tw crash bugs Welcor found here https://www.tbamud.com/forum/4-development/4300-simple-list-forced-to-reset-itself

* wizhelp changes

Cleared buf in columns_list that was getting garbage data in it. Removed wizhelp subcommand from do_commands, and removed buf and sprintf line that were never sent to anyone and replaced it with a send_to_char. Removed arg capability from do_commands as it's no longer useful without the wizhelp subcommand. Replaced wizhelp subcommand with separate do_wizhelp command that sorts commands by their level and shows all imms all imm commands regardless of their level.
2018-01-24 21:22:23 -05:00
Nauzhror
fe8f93a6b2 Bugfixes (#38)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.

* Fixed look 2.mail

Also reverted CMMAND_TERMS, was increased in previous commit when it didn't need to be due to the removed of marena.

* Fixed add_to_lookup_table

Fixed as per  Welcor https://www.tbamud.com/forum/2-general/4307-crash-bug-need-assistance-with-gdb?start=20#7390

* Fixed two crash bugs

Fixed tw crash bugs Welcor found here https://www.tbamud.com/forum/4-development/4300-simple-list-forced-to-reset-itself
2018-01-19 18:53:04 -05:00
Nauzhror
770285c464 Fixed add_to_lookup_table (#37)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.

* Fixed look 2.mail

Also reverted CMMAND_TERMS, was increased in previous commit when it didn't need to be due to the removed of marena.

* Fixed add_to_lookup_table

Fixed as per  Welcor https://www.tbamud.com/forum/2-general/4307-crash-bug-need-assistance-with-gdb?start=20#7390
2018-01-18 11:59:25 -05:00
Nauzhror
25e8daa43e Look at 2.Mail (#36)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.

* Fixed look 2.mail

Also reverted CMMAND_TERMS, was increased in previous commit when it didn't need to be due to the removed of marena.
2018-01-15 17:30:40 -05:00
Nauzhror
023348b0a0 Added %log% command, and made capitalization up to the builders discretion in various trigedit messages. (#35)
* Added %log%, and made %send%, %echo%, etc. not force capitalization.

* Fixed Previous Commit

* Really fixed this time.
2018-01-15 15:37:42 -05:00
Rumble
deeb862cde Final update for 2018 release, thanks Fizban for updating shady triggers and WhiskyTest for bug fix 2018-01-15 01:15:10 +01:00
Rumble
544afc796b Update for 2018 release 2018-01-10 02:56:13 +01:00
WhiskyTest
0bb51e2bc2 MSDP Newline Fix (#34)
* MSDP Newline Fix

MSDP is sending additional new lines still. Added missing fix from KaVir's plugin

* MSDP Newline Fix

MSDP is sending additional new lines still. Added missing fix from KaVir's plugin
2018-01-09 06:36:40 -05:00
Rumble
51fa6bc2af Update for 2018 release 2018-01-08 02:28:56 +01:00
srhuston
045e7fa515 Don't tell a followed person that an invisible immortal stopped following (#33) 2017-11-15 18:36:53 -05:00
srhuston
38cdaf535d Fixed a few typos (some cosmetic, some functional) (#32) 2017-11-05 22:06:58 -05:00
wyld-sw
08f5eb8947 Restores shop item values after previous precision change. 2017-11-03 07:44:22 -04:00
gbrunett
954d5f2639 added regroup sub-command to do_group to allow players to easily shuffle group order. (#10) 2017-10-20 23:30:43 -04:00
gbrunett
27a2f4bdc8 new bandage command to enable fighting classes to help incapacitated players (#11) 2017-10-20 23:29:07 -04:00
gbrunett
dec0c5af1f follow command with no arguments reports leader (when already following) (#7) 2017-10-20 21:43:37 -04:00
gbrunett
75d8b58029 new unfollow command available for all players (#6)
* new unfollow command available for all players

* new unfollow command available for all players (fix redundant check)

* new unfollow command available for all players (fix redundant check)
2017-10-20 21:32:58 -04:00
mcclure
324cfdd415 Restored retval docs. 2017-10-20 13:53:43 -04:00
mcclure
fc4c64c782 Addressed several compiler warnings. 2017-10-09 13:03:48 -04:00
Rumble
08374524d0 Fixed empty liquid container bug (thanks WhiskyTest) 2017-03-20 11:58:48 +01:00
Rumble
ef17530ed8 Update for 3.68 release 2017-02-08 01:03:16 +01:00
wyld-sw
905b5e440e Corrected typo in cedit. 2017-01-21 12:52:24 -05:00