2006-12-27 06:40:05 Sean Middleditch <elanthis@awesomeplay.com>
* Remove debugging message. Oops.
2006-12-27 06:37:15 Sean Middleditch <elanthis@awesomeplay.com>
* Finally stabilized the sorting of entities so that they quit
bouncing around in the zone files.
* Began adding a ruleset file. It's mostly just thoughts,
and is so far unimplemented.
2006-10-08 08:43:22 Sean Middleditch <elanthis@awesomeplay.com>
* When a socket is waiting for a disconnect, do not call the flush
method any further. (It shouldn't have any new waiting output,
after all.) This will fix a rather nasty problem that occurs
when a telnet session times out from inactivity.
* Explicitly flush text chunk in telnet code before requesting
a disconnection.
* Remove spurious log of event name in AI module.
2006-10-05 03:03:27 Sean Middleditch <elanthis@awesomeplay.com>
* Fix the network code to use a vector of bytes instead of a
StringBuffer for output buffering, so that we can use embedded
NUL bytes again, so that ZMP works.
2006-10-01 07:54:48 Sean Middleditch <elanthis@awesomeplay.com>
* Show the direction of all exits in room lists.
2006-09-30 06:16:20 Sean Middleditch <elanthis@awesomeplay.com>
* Don't require a room for events, since events like EnterZone
for creatures just entering the game have no old room.
* Added a new AI, monster.ai, which is a very simple "attack
random player in room" AI.
* Removed the foodchain stuff from npc.sx.
* Added an attackRandomPlayer() method in npc.sx.
* Fixed display of object descriptions in Creature::do_look().
2006-09-23 04:01:49 Sean Middleditch <elanthis@awesomeplay.com>
* Added a created and last login time stamp to Player.
* Added a total playtime field to Player.
* Renamed start/quit in Player to start_session and end_session.
2006-09-22 17:30:56 Sean Middleditch <elanthis@awesomeplay.com>
* Fixed player saving of stats, it was saving stat values as
strings instead of as integers.
* Added some functions to easily convert between time_t and
String.
* Added creation time and last login time tracking to accounts.
2006-09-21 02:57:37 Sean Middleditch <elanthis@awesomeplay.com>
* Updated player and npc types to use the new fileobj list
construct.
* Updated the skill info format to prepare for pure-skill system,
including dynamic XP pools and the removal of hard-coded stats.
2006-09-17 22:26:46 Sean Middleditch <elanthis@awesomeplay.com>
* Added a new list type to the fileobj format, which is currently
used by the races file.
* Cleaned up the fileobj API to remove all legacy cruft.
2006-09-17 18:04:14 Sean Middleditch <elanthis@awesomeplay.com>
* More work on updating the events in use.
2006-09-17 05:01:57 Sean Middleditch <elanthis@awesomeplay.com>
* New event system semantics.
* Removed object action code, as the new event semantics
super-cede it.
2006-09-15 22:09:01 Sean Middleditch <elanthis@awesomeplay.com>
* Many portal updates.
* The example.zone was very incomplete and buggy, and with the new
portal changes, required a lot of work to update. Began writing
a new example world (pulled straight from the arse as I go).
* Fixed error message on unknown attributes in fileobj files.
2006-09-12 02:35:25 Sean Middleditch <elanthis@awesomeplay.com>
* Began restructing the portal system. All portals will now be
shared between room instances, unless the portal is explicitly
marked one way. This means that each portal has to be added to
only a single room in the .zone files, and it will automatically
register itself with the target room on load up. Or will,
at least; that's not yet complete.
2006-09-11 01:47:43 Sean Middleditch <elanthis@awesomeplay.com>
* Updated the manifest file code.
2006-09-10 04:21:25 Sean Middleditch <elanthis@awesomeplay.com>
* Added a new manifest.txt parser/generator. These files are
used to list other files. Brilliant, isn't it?
* Updated the script loader, AI loader, HTML template loader,
and help file loader to use the new manifest.txt support
instead of using a customer file or opendir().
* Moved files around a bit, so that each set of files is in its
own directory and thus can have its own manifest.txt.
2006-09-10 01:29:57 Sean Middleditch <elanthis@awesomeplay.com>
* Fixed some accidental replacements of "character" with
"creature."
* Fixed an echo handling bug.
2006-09-08 16:48:12 Sean Middleditch <elanthis@awesomeplay.com>
* Cleaned up the socket classes and their interfaces.
2006-09-07 02:59:47 Sean Middleditch <elanthis@awesomeplay.com>
* Removed support for ZMP net.awemud package, since it doesn't
really exist anywhere.
* Player now attaches to a IPlayerConnection object. Basically,
this allows us to have multiple protocols for players.
2006-09-06 00:20:31 Sean Middleditch <elanthis@awesomeplay.com>
* Parse system now only accepts named parameters; they may no
longer be accessed by index, and every parameter must have
a name.
* Updated all script functions/methods that used the parsing
engine to take alternative string/value pairs in their variable
argument list.
* Updated all date and source to replace use of indexed parse
parameters with named parameters.
2006-09-05 11:45:41 Sean Middleditch <elanthis@awesomeplay.com>
* Fix name of awemud.conf parameter for setting the HTML template
directory.
* Make the awemud start script work properly again.
2006-09-05 03:10:29 Sean Middleditch <elanthis@awesomeplay.com>
* Split the data/html file into separate .tpl files in data/html/.
2006-09-04 20:39:32 Sean Middleditch <elanthis@awesomeplay.com>
* Made _ a valid character for a parse name.
* Improved HTTP error system.
* HTTP handler no longer stores all headers, but only the values
of the ones it cares about, to avoid header bomb attacks.
* Fixed bug in ScriptFunction::run(ScriptValue,ScriptValue)
where it wasn't storing the second argument correctly.
* Cleaned up HTTP handler.
2006-09-04 10:13:22 Sean Middleditch <elanthis@awesomeplay.com>
* The function is called exit(), not portal(); yay for
search-and-replace.
2006-09-04 09:46:09 Sean Middleditch <elanthis@awesomeplay.com>
* Fixed telnet timeout not working.
* Added a Nil type to Scriptix to avoid crashes on errors
regarding nil values.
* Added HTTP timeouts.
* Added request size checking to HTTP requests.
* Greatly improved HTTP error reporting and logging.
* Note: HTTP still susceptible to "header bombing."
2006-09-04 07:13:47 Sean Middleditch <elanthis@awesomeplay.com>
* Add proper HTTP session tracking and session IDs.
* WARNING: I have no clue how secure the session IDs are.
Not my area of expertise.
2006-09-04 04:49:23 Sean Middleditch <elanthis@awesomeplay.com>
* AweMUD now includes a basic web server, complete with
Scriptix integration. Sort of. Still needs a lot of work.
DO NOT enable on sites with public access, the code is not
yet deemed secure.
2006-09-04 01:42:19 Sean Middleditch <elanthis@awesomeplay.com>
* Fix mail compilation for systems with sendmail support.
2006-09-04 01:23:46 Sean Middleditch <elanthis@awesomeplay.com>
* Changed object actions from a file object to an attribute.
* Renamed attribute type of creatures from char to creature.
* Cleaned up the parser code, added (somewhat) useful error
messages on failure.
* Fixed the parse codes used in example.zone for day/night tests.
2006-09-04 00:04:41 Sean Middleditch <elanthis@awesomeplay.com>
* Renamed RoomExit and related types to Portal.
* Fixed some Character/Creature conversion mistakes.
2006-09-03 23:45:53 Sean Middleditch <elanthis@awesomeplay.com>
* Remove differentiation between attributes and keyed attributes
in file object format; all attributes are now keyed.
* Clean up file obj API calls.
2006-09-03 23:22:05 Sean Middleditch <elanthis@awesomeplay.com>
* Renamed Character to Creature.
2006-09-03 23:02:07 Sean Middleditch <elanthis@awesomeplay.com>
* Fix compilation of MailMessage calls in cmd_player.cc.
2006-09-03 22:03:16 Sean Middleditch <elanthis@awesomeplay.com>
* Updated the skills file to use the tab file format.
* Re-implemented str_tr().
* Used str_tr as a quick hack to make player file saving of
traits work again.
2006-09-03 21:21:26 Sean Middleditch <elanthis@awesomeplay.com>
* Implemented a new tab-delimated file format parser.
* Changed socials to use a tab-delimated file format.
2006-09-02 22:34:38 Sean Middleditch <elanthis@awesomeplay.com>
* Minor but incompatible changes to the file object format.
* Most attributes stored in file object format are now keyed.
* Player loading is not quite right yet, due to traits and skills
being invalid IDs.
2006-09-02 20:34:45 Sean Middleditch <elanthis@awesomeplay.com>
* Added File::Object type to remove need for reader loops.
2006-08-19 07:30:56 Sean Middleditch <elanthis@awesomeplay.com>
* Remove the debugging printout in event.cc.
2006-07-17 01:43:44 Sean Middleditch <elanthis@awesomeplay.com>
* Re-enable the attack_hit action on weapons during combat.
2006-07-16 12:49:25 Sean Middleditch <elanthis@awesomeplay.com>
* Replace all uses of print and printf methods in scripts with
streams.
* Added @ignore stream.
* Added documentation for streamops.
2006-07-15 13:50:38 Sean Middleditch <elanthis@awesomeplay.com>
* Added @indent stream operator.
* Improved @name stream operator.
* Updated player.sx to use streams everywhere.
2006-07-15 13:42:19 Sean Middleditch <elanthis@awesomeplay.com>
* Added Scriptix stream operator support.
* Removed the boolean return on IStreamSink::end(), we no longer
need to delete those automatically; we have a GC, after all.
2006-07-14 20:12:14 Sean Middleditch <elanthis@awesomeplay.com>
* Make new character's HP set to the max.
* Allow saving and loading of customized names on Objects.
* Waffle on Scriptix string concat operator yet again; it's back
to .. now.
* Fixed a bug in Scriptix eval loop that would cause it continue
evaluating a function even after an error.
* Added a new stream operator << to Scriptix and basic stream
support for Character and Room. Added one example line of
this in player.sx.
* Stream support is not finished, as the special << @op(args)
format is not yet handled properly.
2006-07-13 21:28:26 Sean Middleditch <elanthis@awesomeplay.com>
* Reduce startup log messages to almost nothing.
2006-07-13 20:41:50 Sean Middleditch <elanthis@awesomeplay.com>
* Release version 0.25.
2006-07-13 16:58:24 Sean Middleditch <elanthis@awesomeplay.com>
* Rename Scriptix Object.setName to Object.setBaseName and
document it better.
* Rename Scriptix Entity.getFullName to Entity.getBaseName and
document it better.
* Fix NPC corpse generation to work properly.
* Added Scriptix functions warning() and error(), like message()
except using Log::Warning and Log::Error, respectively.
2006-07-13 16:47:04 Sean Middleditch <elanthis@awesomeplay.com>
* Fix some incorrect data files caused by testing.
2006-07-13 05:35:07 Sean Middleditch <elanthis@awesomeplay.com>
* Replaced the huge disgusting 128-bit unique IDs with something
much smaller and simpler. Instead of generating true UUIDs,
we now use a simple counter. Each new entity gets a new ID
in sequence. However, in order to avoid duplicate IDs caused
by crashes, the system makes ID reserves. It pre-allocates
1024 IDs (this number can easily be changed, probably will be
changed) and saves to disk this reservation. So, if AweMUD
crashes between allocating an ID and updating data/uniqid,
data/uniqid will still indicate that the next available ID is
much higher than the ones actually in use. If AweMUD shuts
down cleanly, the correct value is saved.
2006-07-13 04:32:49 Sean Middleditch <elanthis@awesomeplay.com>
* Updates to combat algorithms. No these aren't even close to
what we're going to use long-term.
* Reinstated Object::set_name(). Possibly needs some work on
the script integration side.
* Remove the 'new' keyword from Scriptix, and with it the ability
to create new types, and also to create instances of classes.
The former is now unused, and the latter was only used with
Arrays.
* Created a new array() function in Scriptix to create arrays,
similar in spirit to PHP's array() function.
2006-07-13 01:23:22 Sean Middleditch <elanthis@awesomeplay.com>
* Fixed bug in Object::name_match, which was ignoring parent
Blueprint name.
* Fixed ancient incorrect parse format use in NPC blueprints
and example.zone.
* Reinstated the Character::cl_find_* functions.
* Moved str_value into cmd_char, since that's all that used it,
and the new interface is suited solely to that usage.
* Changed the format of accepted values for str_value (and thus
all character commands).
2006-07-12 19:42:39 Sean Middleditch <elanthis@awesomeplay.com>
* Removed the StringArg type, it's not useful anymore.
* Reverted phrase_match to using C-style strings, since the
command parser is more efficient that way.
* Added a prefix_match function, which is more efficient for
one-word matches than phrase_match.
2006-07-12 16:07:05 Sean Middleditch <elanthis@awesomeplay.com>
* Use streams in commands and help instead of just using Player*.
* Automatically register socials as actual commands, instead of
having the command lookup code treat socials specially.
2006-07-12 15:06:15 Sean Middleditch <elanthis@awesomeplay.com>
* Added fdprintf(), which is something libc should freakin'
provide. Stupid libc.
* Lots of updates to Streams. These really need to be rewritten
in terms of ostream and streambuf.
* Added a new StringBuffer implementation, with new header
common/strbuf.h. This implemenation has a 512 buffer
(allocated on the stack for stack copies of StringBuffer) and
then allocates big buffers on the heap if needed. Theoretically
this will reduce allocations; adding some logging on overflow
so I can figure out if it is happening too often.
2006-07-12 02:37:20 Sean Middleditch <elanthis@awesomeplay.com>
* Landed the new String implementation, which uses just
GC'd strings. This means that, in most cases, we now have a
zero-copying, zero-overhead string mechanism. Unfortunately,
there are a few places that still have copying, and a few places
we had to add it. Some of these will be cleaned up shortly,
to make them more efficient.
2006-07-11 19:30:43 Sean Middleditch <elanthis@awesomeplay.com>
* Began the (immense) initial work to use the new String class.
This work requires that all static strings assigned to a
string put in the form S("foo") instead of just "foo" so that
the compiler can tell the difference between static strings
and non-static C-style strings. To use a C-style string,
use String("foo").
* Various minor API updates all over the place to remove use of
C-style strings as arguments to functions. This has resulted
in some extraneous copying which I will remove later.
* Various other small cleanups to the String API and other APIs
that handle strings.
* Added a new Character::cl_find_object() overload for finding
objects in other objects.
* Note: all of the Character::cl_find_* methods are empty right
now, as they need some heavy changes to cope with the new
String API. They'll be updated soon.
2006-07-10 19:37:49 Sean Middleditch <elanthis@awesomeplay.com>
* Removed Race skin_type stuff from the script bindigns; oops.
* Updates to Race to make character creation saner.
* Character creation code is now feature complete. Could use
some cleaning up in the UI, though.
2006-07-10 18:00:14 Sean Middleditch <elanthis@awesomeplay.com>
* The skin_type value in Race hasn't been used in a while,
remove it.
2006-07-10 04:15:56 Sean Middleditch <elanthis@awesomeplay.com>
* All of the character creation code is in C++ as a TelnetMode
now. However, the player traits portion of character creation
is still missing. That'll come up in the next commit.
2006-07-09 20:07:39 Sean Middleditch <elanthis@awesomeplay.com>
* Split up the login/main menu code to login.cc and menu.cc.
* Readying to reimplement character creation as a TelnetMode,
not as an IProcessor, since character creation is the only
IProcessor left. Also, this'll make doing the character
creation code a bit easier and a lot cleaner, and simplify
the Player class as well.
* Remove the IProcessor code completely, as we no longer use it.
* Disable building of char_create.cc, it will be replaced by
creation.cc.
2006-07-09 19:03:03 Sean Middleditch <elanthis@awesomeplay.com>
* Change signature on phrase_match to something a little saner.
* Begin moving character creation code into C++.
* Remove script bindings version of Processor/IProcessor.
2006-06-23 17:17:17 Sean Middleditch <elanthis@awesomeplay.com>
* Fix compilation with gcc 4.1.
2006-06-16 15:48:40 Sean Middleditch <elanthis@awesomeplay.com>
* Remove DB code.
* Make Scriptix::Array::Array(count, list) handle list==NULL as
it's supposed to.
2006-01-25 19:04:02 Sean Middleditch <elanthis@awesomeplay.com>
* More work on the DB backend.
* Updated entity factory code to utilize DB.
2006-01-24 21:58:53 Sean Middleditch <elanthis@awesomeplay.com>
* Fix the alignment problems with the telnet NAWS code so
sparc works.
2006-01-24 04:55:11 Sean Middleditch <elanthis@awesomeplay.com>
* More of the db backend is in place.
* Added a data file which will eventually store the example
game world. This will be the only file in git and shipped
with the tarball. The actual .db file will be generated from
this SQL file only if the .db file doesn't already exist.
This way upgrades won't clobber your work.
2006-01-24 04:09:05 Sean Middleditch <elanthis@awesomeplay.com>
* Add beginning of database backend.
* Depend on sqlite3.
2006-01-23 17:36:03 Sean Middleditch <elanthis@awesomeplay.com>
* Remove the .in data files.
* Make System::get_oparg return intptr_t, not int, so we work
on 64-bit systems properly.
* Change the String operator[] definition a bit so that we work
on more G++ versions.
* Fix fileobj.cc in read_token to use ints rather than chars,
so we don't crash on OpenPOWER.
2006-01-22 07:02:06 Sean Middleditch <elanthis@awesomeplay.com>
* Minor documentation additions.
* Remove builder vision. We so don't use that crap.
* Removed script-intr.xml to bindings.xml.
* Renamed common/awestr.h to common/string.h, common/aweregex.h
to common/regex.h, and scriptix/sxstring.h to scriptix/string.h.
2006-01-21 16:41:15 Sean Middleditch <elanthis@awesomeplay.com>
* Remove dependency on libtool. We don't actually build any
libraries, so we don't need it.
2006-01-21 16:31:50 Sean Middleditch <elanthis@awesomeplay.com>
* Removed the chpass command, trying to remove the IProcessor
stuff, it's unclean.
* Don't build-depend on bison, flex, or xsltproc. Only people
wanting to hack on the source will need those utilities.
This makes installing AweMUD a lot easier, especially on
older/non-gnu systems.
2006-01-21 04:56:03 Sean Middleditch <elanthis@awesomeplay.com>
* OS X 10.3's compiler was being a dork, these fixes make it
stop being a dork, which makes me happy.
2006-01-21 04:30:48 Sean Middleditch <elanthis@awesomeplay.com>
* Darwin/OS X requires sys/types.h to be included before regex.h.
2006-01-21 03:14:56 Sean Middleditch <elanthis@awesomeplay.com>
* Make all accept()ed sockets non-blocking.
* Remove include/scriptix/scriptix.h.
* Remove the -Iinclude/common -Iinclude/mud -Iinclude/scriptix
compile flags, forcing all includes to specify the source
module.
* Move a few source files from src/mud to src/common.
2006-01-20 21:18:24 Sean Middleditch <elanthis@awesomeplay.com>
* Add missing doc/ch-introduction.xml file.
2006-01-20 21:04:33 Sean Middleditch <elanthis@awesomeplay.com>
* Use inet_pton if getnameinfo isn't available. (Cygwin)
* Don't check for socklen_t, we always screw the check up, and
all our target platforms have it. (Cygwin/MacOS X 10.3/Solaris)
* Use fcntl with O_NONBLOCK instead of the MSG_DONTWAIT flag.
(Cygwin)
* Rename parameter s_addr to s_netaddr in mud/telnet.h and
mud/telnet.cc, since s_addr can be a freaky macro. (Solaris)
* Make md5.cc use uint32_t from common/types.h. (Solaris)
* Move md5.cc from src/mud to src/common.
* Fixup common/types.h to use standard int32_t and friends if
stdint.h or inttypes.h is available.
* NOTE: I have compiled and connected to AweMUD successfully
on a sparc Solaris machine... only to have it crash almost
immediately. Not sure if the bug is in libgc or AweMUD
itself yet.
2006-01-20 17:00:25 Sean Middleditch <elanthis@awesomeplay.com>
* Remove custom prompts; code is bit-rotted and unused.
* Cleanup use of EntityName a little.
2006-01-20 02:51:57 Sean Middleditch <elanthis@awesomeplay.com>
* Removed doc/index.html.
* Greatly improve script hook documentation.
2006-01-20 01:30:08 Sean Middleditch <elanthis@awesomeplay.com>
* Changed the control socket protocol's quote characters from {}
to "" to make scripting easier.
* Added a 'login' command to the control socket protocol.
* Add tools/awemud-control.inc.php (COMPLETELY UNTESTED!) so
web developers can easily make use of AweMUD control interface.
* Incorporated doc/control.txt into the AweMUD Manual.
* Removed massroom.pl, dear is it old.
* Removed awemud.6 manpage, totally out of date.
2006-01-19 20:47:55 Sean Middleditch <elanthis@awesomeplay.com>
* Update the command document in the script guide to be accurate.
* Update the FAQ.
* Created awemud-manual.xml and ch-introduction.xml and renamed
script-guide.xml to ch-scripting.xml. Goal is to build all
documentation as a single AweMUD Manual document.
2006-01-18 21:26:13 Sean Middleditch <elanthis@awesomeplay.com>
* Removed player titles.
* Revamped entity name handling.
2006-01-18 18:29:13 Sean Middleditch <elanthis@awesomeplay.com>
* Build fixes.
* Update tools for Cogito/GIT usage.
2006-01-15 20:38:12 Sean Middleditch <elanthis@awesomeplay.com>
* Release 0.24.
2006-01-15 20:29:02 Sean Middleditch <elanthis@awesomeplay.com>
* The admin-guide and user-guide haven't been updated in years,
and I'm not likely to ever do so again anytime soon, so they
are now gone.
2006-01-15 19:33:32 Sean Middleditch <elanthis@awesomeplay.com>
* Moved ScriptFunction into the Scriptix headers.
* Rename Scriptix struct 'members' to struct 'properties'.
* Added a Scriptix::Native type to replace the AweMUD Scriptable
type.
* Renamed mud/scripts.[h,cc] to mud/bindings.[h,cc], since that's
all that code handles now.
* Require explicit inclusion of hooks.h.
* Merged mud/scripts.cc into tools/script-code.xsl, which
is really really ugly, but it means we just have one
mud/bindings.cc file now, which I sorta like, almost enough
to ignore the ugliness of merging the code.
* Began making sure all includes have proper module prefixes,
so that I can eventually remove the -I./include/mud,
-I./include/common, -I./include/scriptix flags.
2006-01-13 23:46:20 Sean Middleditch <elanthis@awesomeplay.com>
* Fix some data files to use the correct parsing format we
use now.
2006-01-13 19:51:46 Sean Middleditch <elanthis@awesomeplay.com>
* Apparantly libtool went and changed behavior again, now
requiring AC_CONFIG_AUX_DIR on some (not all) systems or else
it puts files in weird-ass places and fails to work.
2006-01-12 21:18:39 Sean Middleditch <elanthis@awesomeplay.com>
* Script functions can no longer define varargs style variables.
We weren't using them. Native functions still have vararg
style operation, however, since we do use those extensively.
2006-01-12 20:44:58 Sean Middleditch <elanthis@awesomeplay.com>
* Make 'make distcheck' work. Involved fixing some genuine
errors.
* Reorder appendices in the scripting guide.
2006-01-11 05:31:46 Sean Middleditch <elanthis@awesomeplay.com>
* Make sure the hooks XSL code is distributed properly.
* Require that functions in scripts be declared with the function
keyword.
2006-01-10 21:58:28 Sean Middleditch <elanthis@awesomeplay.com>
* For room and container display, do not show a comma before
the and if there are only two items in the list.
* Remove the colons from the exit, character, and object lists
in room descriptions.
* Put character and object descriptions together in the room
display (sorted with characters first, objects second).
2005-11-23 05:58:59 Sean Middleditch <elanthis@awesomeplay.com>
* Converted Scriptix::System into an IManager.
* Made XML-defined hook list, a la the event list.
* Changed ScriptEngineManager to SScriptBindings, as that's all
it manages now.
2005-11-23 05:58:06 Sean Middleditch <elanthis@awesomeplay.com>
* Converted Scriptix::System into an IManager.
* Made XML-defined hook list, a la the event list.
* Changed ScriptEngineManager to SScriptBindings, as that's all
it manages now.
2005-11-18 06:08:06 Sean Middleditch <elanthis@awesomeplay.com>
* Renamed Scriptix::String to Scriptix::ScriptString.
* Made Scriptix strings use the AweMUD String class.
* Merged ScriptValue features into Scriptix::Value.
* Removal of all use of Scriptix::ScriptString in include/mud
and src/mud folders.
* Update Scriptix::Atom to work using unified string type.
* Tons of other minor updates to make the above work.
2005-11-15 21:43:39 Sean Middleditch <elanthis@awemud.net>
* src/mud/skills.cc needed stdint.h for NULL to work.
* include/scriptix/network.h needed to define socklen_t to size_t
if it's undefined. (FreeBSD has socklen_t, but configure.ac
isn't picking up on that.)
2005-11-15 20:27:01 Sean Middleditch <elanthis@awesomeplay.com>
* Split IManager from include/mud/server.h to
include/common/imanager.h.
* Moved gc*.h from include/mud to include/common.
* Removed include/scriptix/collectable.h and updated Scriptix
to use the common GC types and classes.
* Moved gen to src/xml.
* Removed Scriptix System run-time option methods and members.
* Converted Scriptix Array to use GCType::vector instead of
self-made vector.
2005-11-06 06:49:08 Sean Middleditch <elanthis@awesomeplay.com>
* Correct make dist to include gen/parse-intr.xml.
2005-11-06 06:37:49 Sean Middleditch <elanthis@awesomeplay.com>
* Fix build of parse_commands.cc, which the Makefile was looking
for in src/ instead of src/mud/.
2005-11-04 19:44:29 Sean Middleditch <elanthis@awesomeplay.com>
* Fixes to Makefile.am to correct building of Scriptix.
* Fixes to Makefile.am to include all requires files in make dist.
2005-11-04 18:28:52 Sean Middleditch <elanthis@awesomeplay.com>
* Scriptix is now part of the tree.
2005-11-04 18:15:15 Sean Middleditch <elanthis@awesomeplay.com>
* Moved all header files into subfolders of include, and all
source files into subfolders of src, to prepare for the
inclusion of Scriptix in the AweMUD code tree.
2005-11-02 04:16:35 Sean Middleditch <elanthis@awesomeplay.com>
* Update to the Scriptix API changes.
* Correct sorting of ELists so that we don't get the child entity
bouncing for entities with identical names anymore.
2005-11-01 21:29:52 Sean Middleditch <elanthis@awesomeplay.com>
* The CatchHandler in src/scripts.cc had HandleFunction instead
of handle_function as a member (changed with the previous
Scriptix function/method case change), which caused it to
not be invoked thanks to C++ totally missing the ball on
non-overriding virtual functions.
* CatchHandler also wasn't initializing its func member to
NULL, so it would return garbage instead of NULL, causing
unpleasantness. Fixed so now we get errors when no function
is caught.
2005-09-23 03:11:50 Sean Middleditch <elanthis@awesomeplay.com>
* Rename the x-awemud ZMP package to net.awemud, so as to be
compliant with my own bloody specification.
2005-09-01 20:56:36 Sean Middleditch <elanthis@awesomeplay.com>
* Updated bindings for Scriptix API changes.
2005-08-30 13:42:56 Sean Middleditch <elanthis@awesomeplay.com>
* Export skill data to scripts.
2005-08-28 20:22:30 Sean Middleditch <elanthis@awesomeplay.com>
* Correct the exit usage strings which had not been updated for
the text parser changes.
2005-08-26 16:53:52 Sean Middleditch <elanthis@awesomeplay.com>
* Scriptix API updates.
* Remove all usage of static methods in scripts.
* Update scripts to use the reverted dereference operator and
this week's flavor of string concatenation operator.
* Convert script method names from lower_case to camelCase.
* Improve error generation of script-code so that broken methods
without <code> blocks have nice line numbers.
* Remove the scripttypes.h and script-header.xsl files in place
of the SCRIPT_TYPE macro, so that editing the script interface
defintion file doesn't require rebuilding half the codebase.
* Tested character creation, which works - other scripts may
still be non-functional due to conversion bugs.
2005-08-24 20:15:28 Sean Middleditch <elanthis@awemud.net>
* Update to latest Scriptix API/language which has no function
tags.
* Instead of using the init function tag in scripts, any function
named init is now executed after all scripts are loaded.
* Instead of using the hook function tag with a function with
the hook's name, instead a register_hook function is available
which takes the hook name and a function as input.
* Added an invoke_hook function so scripts can invoke hooks too.
2005-08-19 20:59:57 Sean Middleditch <elanthis@awesomeplay.com>
* I do this a lot, don't it? Add the missing doc/design/store.txt
file.
2005-08-19 20:59:01 Sean Middleditch <elanthis@awesomeplay.com>
* Only supported XSLT processor is now xsltproc. I only test
that one, and differences with others have caused problems
recently for people.
* Updated Scriptix checking code to search in /usr, /usr/local,
and /usr/local/scriptix, in addition to any location specified
by --with-scriptix.
* Remove ancient and out-of-date documentation.
* Reorganization of the little bit of remaining documentation
we have.
2005-08-19 17:07:51 Sean Middleditch <elanthis@awesomeplay.com>
* Fixed script documentation error in the XSLT file regarding
the element name change in script-intr.xml. This was causing
the test server not to build.
2005-08-19 16:00:12 Sean Middleditch <elanthis@awesomeplay.com>
* Races now use the generic trait framework instead of the
hard-coded traits.
* Character creation works again, with full trait support.
2005-08-19 04:29:39 Sean Middleditch <elanthis@awesomeplay.com>
* And it would be useful to include gen/parse-intr.xml,
wouldn't it?
2005-08-19 04:29:06 Sean Middleditch <elanthis@awesomeplay.com>
* Fix build by not requiring the removed include/mixed.h file
anymore.
* Generate all the parse commands out of an XML file,
gen/parse-intr.xml.
2005-08-19 01:36:59 Sean Middleditch <elanthis@awesomeplay.com>
* Rewrite of text parsing system with new (but similar) and more
consistent and reliable syntax.
* Removal of the Mixed type, as only the parsing code was using
it, and replacement with a smaller and leaner ParseValue type.
* Updated data files for new parsing syntax.
* Updated doc/parse.txt for the new syntax.
2005-08-16 00:43:08 Sean Middleditch <elanthis@awesomeplay.com>
* Yet another big update to the traits code. Still incomplete.
2005-08-11 13:25:15 Sean Middleditch <elanthis@awesomeplay.com>
* Removing debugging message from skill.cc.
* Externalize all data from pdesc.cc to data/traits.
2005-08-11 01:05:05 Sean Middleditch <elanthis@awesomeplay.com>
* Use correct ANSI color codes for bright colors, from Shawn
Sullivan <shawnmsullivan@msn.com>.
2005-08-10 04:09:52 Sean Middleditch <elanthis@awesomeplay.com>
* Added keyed attributes to the file-object format, which are
essentially the same thing as the attribute types I just
removed, but now a little cleaner. Unfortunately, for any
kind of dynamic property, we need these, no getting around it
without ugly hacks like encoding keys and values in the data
as a string and then parsing them, defeating half the purpose
of using the file-object format.
* Correct invalid XSLT in tools/script-code.xsl that wasn't
picked up by libxslt2.
* Make the setcolor command work again.
* Update setcolor usage string to be clearer.
* Add skills code.
2005-07-30 03:28:03 Sean Middleditch <elanthis@awesomeplay.com>
* The hair length names were out of sync with the descriptions.
2005-07-29 04:03:00 Sean Middleditch <elanthis@awesomeplay.com>
* Optimize the ID map implementation to use a lot less memory.
* Update the event script callback API to pass in the event name
instead of the event number.
2005-07-28 04:17:01 Sean Middleditch <elanthis@awesomeplay.com>
* The Makefile wasn't including undead.npcs in tarballs or
installations.
2005-07-27 19:19:54 Sean Middleditch <elanthis@awesomeplay.com>
* Update copyrights to 2005... halfway into the year.
2005-07-27 04:33:41 Sean Middleditch <elanthis@awesomeplay.com>
* Removed the command 'about' field in favor of using the help
system we already have. Command usages stay, however.
* Updated the file object format to allow any string type as an
attribute/object name.
* Updated help format to not need the nested objects.
* Fixed character creation (to_num is now to_int).
2005-07-21 18:09:44 Sean Middleditch <elanthis@awesomeplay.com>
* Removed Todo file, not like I was keeping it up-to-date.
* Removed the IObject class, as only ObjectBlueprint and Entity
used it, and ObjectBlueprint had no good reason to.
2005-07-21 15:50:50 Sean Middleditch <elanthis@awesomeplay.com>
* They (file object schemas) were a good feature, but would
take too much work to get in place for the small amount of
payoff at this stage in development.
2005-07-21 04:24:58 Sean Middleditch <elanthis@awesomeplay.com>
* Removed help categories, they weren't really all that useful.
2005-07-21 02:13:21 Sean Middleditch <elanthis@awesomeplay.com>
* Ripped all the state-machine logic out of the C++ code and moved
it partly to scripts. Less code, simpler code, better better.
2005-07-20 19:34:28 Sean Middleditch <elanthis@awesomeplay.com>
* Removed the body defs stuff as we're not using it at all.
* Remove the various Initializing... messages as they're
pointless. (In half the cases, they were literally the only
code that the imanager was running in their initializer!)
2005-07-20 19:26:44 Sean Middleditch <elanthis@awesomeplay.com>
* Removed combat attacks as they weren't all that great to begin
with (we can do a lot better) and they were needless complexity.
2005-07-20 19:17:51 Sean Middleditch <elanthis@awesomeplay.com>
* Revamp OLC system.
* Allow objects to have custom names independent of their
blueprint, for corpses. (This is a temporary hack.)
* Add ability lookup live entity by UID.
2005-07-19 04:19:53 Sean Middleditch <elanthis@awesomeplay.com>
* Update to Scriptix API changes.
* Update to Scriptix language changes.
2005-07-17 20:33:18 Sean Middleditch <elanthis@awesomeplay.com>
* Cleaned up command cruft.
* Removed command sections - all the code was there, but we
weren't using them, and nobody missed them.
* Remoevd erroneous static buffers from telnet.cc.
* Changed telnet command (!echo and friends) to use the explode()
function instead of the command::get_arg() function.
* Added UniqueID class and manager.
* Updated IManager interface to include a save() method to make
"save game state" more manageable.
* Split IManager code into imanager.cc.
* Removed exit IDs, we don't really need them for exit linking,
we just use opposite-direction linking.
2005-07-17 20:33:07 Sean Middleditch <elanthis@awesomeplay.com>
* Cleaned up command cruft.
* Removed command sections - all the code was there, but we
weren't using them, and nobody missed them.
* Remoevd erroneous static buffers from telnet.cc.
* Changed telnet command (!echo and friends) to use the explode()
function instead of the command::get_arg() function.
* Added UniqueID class and manager.
* Updated IManager interface to include a save() method to make
"save game state" more manageable.
* Split IManager code into imanager.cc.
* Removed exit IDs, we don't really need them for exit linking,
we just use opposite-direction linking.
2005-07-13 05:26:54 Sean Middleditch <elanthis@awesomeplay.com>
* Updated File::Schema API to be more flexible, powerful, and
easier to use.
* Added RegEx class that adds an easy wrapper around
regcomp/regexec.
* Time is now saved as a specially formatted string instead of
an entire file-object.
* Changed object actions to store as objects instead of complex
attributes.
* Revamped weather system to be simpler and easier to use.
* Removed the 'klass' from file object format, there is now only
an attribute/object name.
* Updated several data files' formats to work with new parser
behaviour.
2005-07-04 08:09:44 Sean Middleditch <elanthis@awesomeplay.com>
* The ObjectData class is now rolled into ObjectBlueprint
completely.
2005-07-04 07:42:33 Sean Middleditch <elanthis@awesomeplay.com>
* Renamed the 'ntype' members of entity names to 'article'
which is more appropriate.
2005-07-04 03:56:11 Sean Middleditch <elanthis@awesomeplay.com>
* All object fields are part of object blueprints only now,
just like NPCs.
* FileObj files have VIM tags at the end that make editing them
easier (sets tabwidth).
2005-07-01 23:44:39 Sean Middleditch <elanthis@awesomeplay.com>
* Added a graveyard area to the example zone.
* Script function names can now be specified instead of using
the generic "awemud_script_function" which makes debugging
scripts easier.
* Added str_tr() and trim() functions, which transliterate and
remove characters, respectively.
* Fixed long-standing attack event error, because the script
glue code had a max of 5 arguments and we needed at least 6.
2005-04-19 19:30:14 Sean Middleditch <elanthis@awemud.net>
* Update to use the latest Scriptix API changes.
2005-04-18 18:17:19 Sean Middleditch <elanthis@awemud.net>
* The message manager wasn't using the GC, is now. This fixes
our lockup problems from the previous commit.
2005-04-18 04:04:41 Sean Middleditch <elanthis@awemud.net>
* Many more GC usage fixes from the GC API update.
* Still a bug lurking that triggers during shutdown in my testing,
possibly could occur during normal runtime - GC locks up.
Freed memory is probably being written to somewhere, which
means the GC isn't seeing something it should.
2005-04-16 15:09:16 Sean Middleditch <elanthis@awemud.net>
* Try to use the GC in more places to ensure pointers are
properly tracked. Appears to be a bug in script compilation,
possibly in Scriptix itself.
2005-04-15 23:30:18 Sean Middleditch <elanthis@awemud.net>
* Revamped GC usage to reduce reliance on finalizers/destructors
where possible.
* Updated to use latest Scriptix API.
* Move IManager::shutdown out of the cleanup() function and to
the end of main, as cleanup() can be called after global and
static destructors, which caused weird crashes. (Fixes #269)
* Fixed some usages of BaseID::lookup() to be BaseID::create()
where appropriate.
2005-04-12 20:18:09 Sean Middleditch <elanthis@awemud.net>
* Fixed a long-standing bug with AweMUD newline handling that
you'd never notice without a weird client. AweMUD would not
handle clients that only sent nl characters instead of cr/nl
pairs like most clients do.
2005-04-10 06:53:43 Sean Middleditch <elanthis@awemud.net>
* Fix command security. Due to the change in AccessID
implementation to an IDMap, the lookup() member no longer
implicitly created keys, which cmd_init.cc depended on.
cmd_init.cc now explicitly uses AccessID::create() to ensure
that the access keys are created, and thus command security
works again.
* Cleaned up the const StringList& verbosity nightmare in
schema.h.
2005-03-27 02:47:28 Sean Middleditch <elanthis@awemud.net>
* Fix starting of an action when added to the action list and its
already on that list, and it was the first action in the last.
(i.e., repeating attacks.)
* Added undead NPC types.
* Keep track of original NPC blueprint on NPC corpses.
* Added a nifty talisman that raises undead.
* NpcBlueprint::get_parent() actually works now.
* Handle parent blueprint equip lists.
* Various other fixes necessary in several places to handle the
above items.
2005-03-27 00:17:02 Sean Middleditch <elanthis@awemud.net>
* Merge NpcData into NpcBlueprint.
* Make the directional movement commands use Character::do_go().
2005-03-26 19:37:14 Sean Middleditch <elanthis@awemud.net>
* Removed Character::get_level(), since we don't really use it.
* Npc is no longer using NpcData. NPCs *must* be made from
a blueprint. Unique NPCs will also need a blueprint.
* Fixed the brain-dead stupid way of saving equipped object
locations I put in not long ago. It's now a lot saner.
* Fixed character creation scripts for API changes.
2005-03-12 20:22:02 Sean Middleditch <elanthis@awemud.net>
* Split stat functions into 'base_stat' and 'effective_stat',
changed 'stat_mod' to 'stat_modifier'.
* This is just the beginning of some work to enhance the
management of stats, which is necessary to get affects working
properly. The end system will be similar to D20 in that there
will be different classes of bonuses, and bonuses from the
same class will not stack.
2005-03-10 15:08:13 Sean Middleditch <elanthis@awemud.net>
* Load eye/hair/skin colors for races.
* Fix player title display.
* Make tell store the speaker's name in last tell, instead of
the other way around. (Fixes #266)
2005-03-09 23:27:33 Sean Middleditch <elanthis@awemud.net>
* Command manager requires help manager.
* Make typedefs in SkillManager public.
* Fixed race loading.
2005-03-08 22:00:47 Sean Middleditch <elanthis@awemud.net>
* Added a new File::Schema namespace that makes doing all the
validation of input files a lot easier. Still needs work.
* WARNING: AweMUD does not load with this commit. Races are
using the new schema but don't work unless you modify the
races file a bit. Will commit fix soonish.
2005-03-07 16:42:27 Sean Middleditch <elanthis@awemud.net>
* Began fleshing out the skills system. Players can have
skills set, but they are not saved or loaded, nor accessible
from scripts.
2005-03-02 19:58:53 Sean Middleditch <elanthis@awemud.net>
* In GCC 4.0, the STL map has the key type implicitly const, which
conflicts with the GC allocator which is explicitly non-const.
So not I've made the GCType::map explicitly constify its key
type, fixing compilation on GCC 4.0.
2005-01-31 16:02:53 Sean Middleditch <elanthis@awemud.net>
* Make the configure script error out if the Scriptix path is
wrong, with a decently useful error message.
2005-01-30 04:50:20 Sean Middleditch <elanthis@awemud.net>
* Removed the Object::Container type and its list.
* Store all child objects in one list on parent object.
* Don't store coins in object containers anymore.
* Make ContainerList into sets.
2005-01-25 16:45:06 Sean Middleditch <elanthis@awemud.net>
* Don't require data/titles, since it's gone now.
2005-01-23 20:10:41 Sean Middleditch <elanthis@awemud.net>
* Player titles are just simple strings on each player now;
lot simpler than the over-complicated title system.
2005-01-23 02:13:53 Sean Middleditch <elanthis@awemud.net>
* Remove object classes, we can just use inherited blueprints
for the same stuff.
2005-01-15 07:24:46 Sean Middleditch <elanthis@awemud.net>
* Added idmap.h that provides a base system for the very common
ID/name mapping we have all over the place.
* Convert tags, events, and access privs to use the new BaseID<>
stuff in idmap.h.
* Curse whoever came up with the C++ template static member
initialization rules.
2005-01-12 04:37:58 Sean Middleditch <elanthis@awemud.net>
* Get rid of pkg-config, it's just a pain and we don't really
need it anyhow.
* Updated FAQ a little.
2005-01-12 02:14:02 Sean Middleditch <elanthis@awemud.net>
* Remove usage of MSG_NOSIGNAL, which Darwin does not support, and
which we don't strictly need since we ignore SIGPIPE anyhow. I
should probably write a simple send()/recv() abstraction though
so we can avoid these wierdnesses in the future.
* Added missing scripts/load.
2005-01-11 05:19:37 Sean Middleditch <elanthis@awemud.net>
* Major entity activation tracking fixes.
* New scripts/load file that describes the script files to load
and their ordering.
* Got rid of the XX.*.sx notation, since we don't need to rely
on filename sorting anymore.
* Fix complication of files including elist.h on older
GCC/libstdc++ releases (hopefully).
2005-01-10 01:14:29 Sean Middleditch <elanthis@awemud.net>
* Rewrote the Entity ownership management routines. They are
somewhat nicer, although C++ made things slightly more painful
that I'd like (covariant returns, in particular).
* Began writing an EntityFactory system to update the Entity
loading code to be more generic, and friendlier to a more
powerful storage and lookup system like an RDBMS.
2005-01-09 02:20:37 Sean Middleditch <elanthis@awemud.net>
* Weak start at cutting down the include count, with the aim to
cut down our over-long compile times.
* Depend on the new CVS version of the Scriptix and its cool
API improvements.
* Zone stores Rooms in a vector instead of a goofy custom list.
* Update copyright notices for 2005.
2005-01-07 18:52:59 Sean Middleditch <elanthis@awemud.net>
* Do not zmp.color.define the default (0) color, as that is
against the spec, and for a good reason.
* Remove debug message from animal.ai script.
2005-01-07 18:06:48 Sean Middleditch <elanthis@awemud.net>
* Fix the Makefile.am so that built headers are actually built
before any source compilation starts.
2005-01-07 16:52:22 Sean Middleditch <elanthis@awemud.net>
* Added TelnetHandler::add_zmp, which is the same as send_zmp,
except it adds it direct to the output chunk handler and not
the unprocessed output buffer.
* Fixed the zmp.color code to use add_zmp, so that color codes
stay in their proper location in the output stream.
2005-01-07 16:08:46 Sean Middleditch <elanthis@awemud.net>
* Fix lookup of script attributes on blueprints.
* Change combat logic a bit to be somewhat sort-of kinda not
really closer to what we'll be using in the final ruleset.
2005-01-06 21:03:07 Sean Middleditch <elanthis@awemud.net>
* Added ScriptFunctionSource, which is just like ScriptFunction,
except that it also keeps a copy of the function source with
it to be saved back to disk later.
* Removed the ObjectUsage type and usage.h, object actions are
now just a list of scripts with specific names. This also means
that usage attributes must now be stored on the object itself.
* Removed AttributeHolder, we didn't use it for events anymore
and ObjectUsage was its last users.
* Added scripts/20.object.sx for the save_object default hook
that saves our read, eat, and drink action attributes.
* Updated all actions that used the old action code to use the
new action code.
* Telnet layer word-wraps at two less than the screen width,
which I personally think looks nicer, and could potentially
avoid bugs with certain crappy clients.
2005-01-05 03:19:51 Sean Middleditch <elanthis@awemud.net>
* Few more minor script interface enhancements.
* Fixed the player death/decay/rebirth script. (Fixes #265)
2005-01-04 16:35:18 Sean Middleditch <elanthis@awemud.net>
* Completely rewrote most of the event handling API.
* All new ScriptValue and ScriptFunction types to greatly simplify
scripting integration.
* Got rid of RDQueue, just use the equivalent STL deque.
* Single top-level Makefile.am and Makefile. Note that this
also puts awemud-bin and awemud-ctrl in the top-level source
directory.
* Moved source generated base files script-intr.xml and
event-list.xml to gen/.
* Various minor buglet fixes and improvements.
2004-12-31 06:23:22 Sean Middleditch <elanthis@awemud.net>
* IManager instances now auto-register themselves, making adding
new ones much easier and simplifying main.cc's startup code
logic.
* The contents of blueprint.h are gone, thare are now concrete
ObjectBlueprintManager and NpcBlueprintManager classes instead
of templated instances.
2004-12-30 00:08:41 Sean Middleditch <elanthis@awemud.net>
* Action handling code is modified to be more robust and support
stopping/cancelling.
* Added IInstantAction for pending actions with zero round time.
* Some more fileobj fixes.
2004-12-24 06:02:48 Sean Middleditch <elanthis@awemud.net>
* Yet more fileobj API and code updates.
* Also some more file format updates for files that needed
tweaking.
* Still haven't gotten rid of <type> <name> syntax - several
corner cases we need them in until we have an alternative.
Namely AI files (which shouldn't be fileobj format anyhow).
2004-12-23 07:42:20 Sean Middleditch <elanthis@awemud.net>
* Finished the fileobj parser update.
* Updated script attributes to use the fileobj type safety.
* Got rid of the write_int/write_str hacks and added
AttributeWriter to Scriptix.
* Updated the Entity::save_hook() methods to use AttributeWriter.
* Many other file tweaks and API tweaks for the fileobj work.
* STill haven't gotten rid of <type> <name> syntax - yes, you
get a lot of deprecation warnings when you start the MUD.
2004-12-22 17:00:15 Sean Middleditch <elanthis@awemud.net>
* Made the new file format active. All data files are
converted and all saved files are in the new format.
Backwards compatibility has been removed.
* Most code uses the new format's enhanced type safety. May be
some places that need fixing yet.
* Still some work to do, such as getting rid of the <type>
<name> format.
2004-12-20 15:20:51 Sean Middleditch <elanthis@awemud.net>
* Begin getting rid of the <type> <name> fileobject declarations -
more work to do yet.
* Add a new fileobject format, code is backwards compatible
(for now).
* Disable writing new format for now.
2004-12-17 18:29:46 Sean Middleditch <elanthis@awemud.net>
* If you have nothing to attack with, print an error and cancel
the action.
2004-12-14 23:09:40 Sean Middleditch <elanthis@awemud.net>
* (Sorry for the big changelog, I'm cut off from the Internet
and don't have a local repository mirror.)
* Got rid of TICKS_PER_HEARTBEAT, as there is now always one
heartbeat per round.
* Where possible, track time in rounds, not ticks, since ticks
aren't useful in most places now - they are server-tracked only.
* Various updates and fixes to the code to handle the new timing
properly.
* Removed player classes, we don't use them in the new rule set.
2004-12-13 18:56:56 Sean Middleditch <elanthis@awemud.net>
* The Entity::update() method is gone, replaced with
Entity::heartbeat().
* Added TICKS_PER_HEARTBEAT (default 4).
* Entity::heartbeat() is only called once every
TICKS_PER_HEARTBEAT ticks. One tick one set of entities has
its heartbeat, the next tick another set of entities as its
heartbeat, and so on. This "load balances" the update logic
for entities instead of doing them all every tick.
* A few things are highly broken by this change - you are warned!
* (Round times are broke, the activate/deactive logic is
deprecated, script hooks need to be renamed/updated, need a
heartbeat event with instant delivery)
2004-12-09 19:35:26 Sean Middleditch <elanthis@awemud.net>
* Only two ticks per second instead of four. This needs to be
made into a run-time setting, I think.
* Added a new time scale factor in settings.h.
* Game time is now slower - only four times faster than real time.
Also needs to be made into a run-time setting.
* Fix RDQueue to be gcc 4.0 compatibile. (This should probably
be removed - why did I reimplement the STL deque?)
2004-12-09 05:05:59 Sean Middleditch <elanthis@awemud.net>
* Added a 'rotting' flag to objects, which allows them to be
trashed when visible and they trash faster.
* Made trashable no longer depend on !gettable.
* Updated the example zone as a result.
* Removed automatic action repeat code - there's only even one
that does it. Simplified code.
* Made ActionAttack just re-add itself to the action list
on repeat.
* Other minor fixes.
2004-12-08 00:44:13 Sean Middleditch <elanthis@awemud.net>
* Get rid of the dual-meaning of Character::round_time. We only
use it for pending actions now.
2004-11-29 20:52:24 Sean Middleditch <elanthis@awemud.net>
* Look in player directory for the 'badnames' file.
* TelnetHandler no longer knows about Accounts or Players at all.
* Added a TelnetHandler::check_mode() method that asks the mode
to check if its current, needs to do anything, etc. - this
is just a hack for when the Player connection is booted by
another TelnetHandler. Crappy encapsulation, needs to be fixed.
* TelnetHandler::disconnect() now correctly decrements the
connection count for the connected address. (Fixes #261)
2004-11-29 19:45:32 Sean Middleditch <elanthis@awemud.net>
* When logging in as a character, if that character already has
an active telnet session, we just boot it instead of providing
an error. This lets users reconnect after a hung connection
issue without waiting for the timeout. (Fixes #255)
2004-11-29 19:05:46 Sean Middleditch <elanthis@awemud.net>
* Make the code for the previous Character.printf fix actually
work. Also, for both of these commits: (Fixes #260)
2004-11-29 19:04:00 Sean Middleditch <elanthis@awemud.net>
* Character.printf now includes the Character instance as the
first argument to the str_parse invocation.
* Updated 50.store.sx to deal with the above change.
2004-11-28 05:29:53 Sean Middleditch <elanthis@awemud.net>
* Fix the fist 'weapon' to use the punch attack.
* Add a punch attack.
2004-11-27 06:07:20 Sean Middleditch <elanthis@awemud.net>
* Only link awemud-bin against libgccpp.
2004-11-27 04:19:30 Sean Middleditch <elanthis@awemud.net>
* Added a player height description item chosen at character
creation. Heights are chosen relative to the race's base
height.
* Began the very very basics for skills.
* Small fixes to animal AI.
* Other small fixes.
2004-11-18 21:22:31 Sean Middleditch <elanthis@awemud.net>
* Network manager only calls hangup() on an actual hangup.
* Network manager assumed GCd object, doesn't delete them.
* Link against libgccpp, which makes the GC safer for C++.
2004-11-18 17:41:52 Sean Middleditch <elanthis@awemud.net>
* The timer doesn't suck anymore. Pauses (like when the server is
inactive) won't cause huge spikes in CPU usage. The engine also
far more accurately assigns ticks to 1/5 of second intervals,
instead of using 1/5 of a second of delay in each loop.
2004-11-18 15:41:40 Sean Middleditch <elanthis@awemud.net>
* Most of the network code restructuring is now done.
2004-11-18 02:24:19 Sean Middleditch <elanthis@awemud.net>
* Further refinement of the network restructure.
2004-11-17 19:24:18 Sean Middleditch <elanthis@awemud.net>
* Remove control sock on shutdown.
* Rewrite network socket handler and poll loop yet again.
I think I like this one, finally. Does need some cleanup of
cruft, however, and addition of poll/epoll/kqueue support.
* Set the mode member of TelnetHandler to NULL in the initializer.
2004-11-15 02:19:07 Sean Middleditch <elanthis@awemud.net>
* Cleaned up the sing command's output.
* Limited the sing command to four lines.
2004-11-15 01:44:26 Sean Middleditch <elanthis@awemud.net>
* Various small cleanups to main network code and some GC issues.
* Added a login and logout announcement.
2004-11-14 22:06:04 Sean Middleditch <elanthis@awemud.net>
* Added a CharStatArray that uses a CharStatID as the index and
does safety bounds checking. (Fixed #254)
2004-11-14 21:26:40 Sean Middleditch <elanthis@awemud.net>
* Make the control socket work again. (Code still needs cleanup.)
* Added a list of UIDs that have read-only access to the control
socket.
* Added a list of UIDs that have read-write access to the
control socket.
2004-10-22 20:27:58 Sean Middleditch <elanthis@awemud.net>
* Added caffect.h and caffect.cc.
* Added basic character affect tracking to Character.
* All players get a temporary +10STR bonus on login (testing
the framework).
2004-10-20 02:05:29 Sean Middleditch <elanthis@awemud.net>
* Moved the base stat value from Character to NpcData and Player.
* Renamed the body group of Object pointers to equipment.
2004-10-13 18:13:10 Sean Middleditch <elanthis@awemud.net>
* Include stdlib.h in awemud-ctrl.c for portability.
* Make the ChangeLog valid UTF-8.
2004-10-13 03:31:24 Sean Middleditch <elanthis@awemud.net>
* Call recalc_stats() after modifying the base stat during
character creation. (Fixes #249)
2004-09-30 20:56:31 Sean Middleditch <elanthis@awemud.net>
* Remove the debug spew in settings.cc.
* Added world_dir to awemud.conf.in.
* Change to the chroot directory (if specified) directly after
reading the config file; actual chroot is still done later in
the initialization process.
2004-09-30 20:43:50 Sean Middleditch <elanthis@awemud.net>
* Fixed reading of configuration file in settings.cc.
2004-09-30 19:59:13 Sean Middleditch <elanthis@awemud.net>
* Removed CharacterData, Player and Npc implement the (two)
properties it stored.
* Fixed alignment adjusting, which didn't save before due.
* Fixed exit sorting.
2004-09-30 19:06:37 Sean Middleditch <elanthis@awemud.net>
* Removed room short desc. (Unused.)
* Entity name and desc methods are virtual now, each sub-class
must implement storage.
* Fix object, NPC, and exit sorting operations.
2004-09-27 19:02:40 Sean Middleditch <elanthis@awemud.net>
* We now track telnet client connections again.
* The deny list for telnet clients is also working again.
(File moved to etc/hosts.deny)
2004-09-25 14:48:02 Sean Middleditch <elanthis@awemud.net>
* Get rid of the Server object entirely - big cleanup of code
in server.cc.
* Rewrote timer code - actually accurate, though it's not
continuous (server will max load if the timer falls behind,
and will stay max load until it catches up).
* Updated telnet.cc to include the config file, so MCCPv2 will
actually be enabled.
* Replaced main.cc with server.cc.
* All initialization and main game loop is in the main()
function now.
2004-09-19 04:10:24 Sean Middleditch <elanthis@awemud.net>
* The settings management code is all new.
2004-09-18 00:46:00 Sean Middleditch <elanthis@awemud.net>
* Completely all new network code redesign.
* Big updates on the logging code.
2004-09-12 00:59:26 Sean Middleditch <elanthis@awemud.net>
* Entity names now have their own struct and are saved a little
differently.
* Alt names are now called keywords.
* Fixed the object dropable flag to be interpreted properly
when loaded.
* Added NPC corpses.
2004-09-08 02:43:07 Sean Middleditch <elanthis@awemud.net>
* All round time is through pending actions.
* Updated stats functions to fit new ruleset better.
* New max health calculation code for new ruleset.
* Minor API changes in places (affects scripts).
* Updated combat rules.
* NPCs are somewhat broken wrt stats.
2004-09-03 19:12:52 Sean Middleditch <elanthis@awemud.net>
* Combat is now a pending action.
* Using 'kill' will cause your attacks to continue until the
target is dead or gone. Using 'attack' will make only a
single attack.
2004-09-02 20:54:04 Sean Middleditch <elanthis@awemud.net>
* Converted yet more actions to the pending action system.
2004-09-01 20:41:54 Sean Middleditch <elanthis@awemud.net>
* Converted more actions to use the pending action system.
2004-08-30 15:40:45 Sean Middleditch <elanthis@awemud.net>
* Character::check_move() calls check_alive(); can't move if
you're dead.
* Began converting all the actions in char_do.cc to the pending
actions system. Even ones that don't need it. Why? So they
can all be queued properly.
2004-08-27 01:24:07 Sean Middleditch <elanthis@awemud.net>
* Updated the requirements and building sections of the admin
guide.
* Updated the awemud script and awemud.conf files to make better
defaults.
* Added a --with-scriptix option so you can build without (a
properly configured) pkg-config.
2004-08-26 02:39:48 Sean Middleditch <elanthis@awemud.net>
* Remodel the pending actions update loop again.
2004-08-26 01:49:01 Sean Middleditch <elanthis@awemud.net>
* Fix the settings code to handle no configuration file.
* Some pending action updates.
2004-08-25 16:56:42 Sean Middleditch <elanthis@awemud.net>
* A very rough first go at pending actions is in!
* Made the 'read' command use pending actions. Probably a
poor choice...
2004-08-25 13:45:13 Sean Middleditch <elanthis@awemud.net>
* Correct the awemud startup script to correctly find the
awemud-bin binary.
2004-08-25 01:28:26 Sean Middleditch <elanthis@awemud.net>
* Name the binary awemud-bin.
* Add an awemud script that launches the binary with the
appropriate config file.
* Rename configure.in to configure.ac.
2004-08-16 20:21:58 Sean Middleditch <elanthis@awemud.net>
* Changed all instances of Action to ObjectUsage, so as to avoid
confusion with the pending action stuff I started on.
* In data files, all "action" blocks need to be changed to
"usage" now.
* Yes, renames suck, and no, I don't care.
2004-08-06 19:40:25 Sean Middleditch <elanthis@awemud.net>
* Initial implementation of the ZMP color package. (color.define
and color.use only.)
2004-07-30 14:28:59 Sean Middleditch <elanthis@awemud.net>
* Use the "misc" entry instead of invalid "data" in body.cc,
combat.cc, and object.cc.
* Added an "ai" path entry to awemud.conf.in.
2004-07-27 18:53:30 Sean Middleditch <elanthis@awemud.net>
* Support input like "2nd" or "23rd" for command indexes.
2004-07-26 20:41:13 Sean Middleditch <elanthis@awemud.net>
* Fixed up 90.example.zone.sx to better handle mis-sync between
exit disabled status and object existence.
* Fixed Entity.get_by_tag() to use the Append method on Scriptix
Array, since Scriptix is slightly broken for SetIndex and I
don't feel like fixing it right now.
* Update the waterfall portal exit to be hidden, and use an
object for the visible description. (Fixes #247)
2004-07-25 21:40:38 Sean Middleditch <elanthis@awemud.net>
* Fix the player_death hook in 50.death.sx. (Fixes #246)
2004-07-23 18:29:08 Sean Middleditch <elanthis@awemud.net>
* Don't try to lookup an object blueprint using a tag object.
(Fixes #244)
* Clean up exit display on 'look' to always be nice and clean.
(Fixes #238)
* Use text parser for exit descriptions.
* Fix SocketManager to set fdlist_len and fdlist_size to 0 when
it's destroyed.
2004-07-14 17:33:00 Sean Middleditch <elanthis@awemud.net>
* Make sure combat always gives a round time.