01592d2593
Reorganized basic permissions handling to be more cleanly extensible.
Michael Bayne
2005-03-02 03:22:27 +00:00
713e76373b
Allow the authenticator to slip some authentication data down the line to the PresentsClient which can then use it to fill in things like access control information for the user. We could use this to replace the UserStash mechanism we use on Yohoho, but that works so I doubt I'll do that. However, this is needed to do things the more elegant way on future projects, like Game Gardens.
Michael Bayne
2005-03-02 03:08:23 +00:00
40eb978a96
Added a simple turn display widget (for game gardens).
Ray Greenwell
2005-03-02 02:33:46 +00:00
a9df96d6dd
Fixed a bug with days not having a defined next-highest unit, which caused day values to incorrectly always display as 0. I'm surprised nobody else noticed this, it's right there on the blockade panel.
Ray Greenwell
2005-03-01 01:16:01 +00:00
9733fc2303
Added support for looping sounds.
Ray Greenwell
2005-02-28 19:29:44 +00:00
a784ce8a79
Comment change so that I can check it in with the right umask.. grr.
Ray Greenwell
2005-02-26 14:30:52 +00:00
008b9ad896
When a new default access controller is set, switch any objects that were using the old default (usually null) to use the new default.
Ray Greenwell
2005-02-26 14:04:25 +00:00
708431bf86
Allow the SceneFactory to be set after construction.
Ray Greenwell
2005-02-25 00:59:35 +00:00
8491496226
Actually, it was stupid of me to handle a non-RandomAccess list differently, as they still implement get() and however they do that internally is bound to be more efficient than doing the same thing through an Iterator.
Ray Greenwell
2005-02-24 06:52:09 +00:00
a107aef489
Added a form of pickRandom that takes a List argument. I just can't bear to see a useless object created (an Iterator) and potentially a great many objects iterated past in order to find the chosen random object when the original List is usually RandomAccess.
Ray Greenwell
2005-02-24 06:45:25 +00:00
44f2a29f4f
Regenerated with updated copyright information.
Michael Bayne
2005-02-22 18:56:52 +00:00
eac29cb3b9
Small documentation addition.
Michael Bayne
2005-02-22 18:55:09 +00:00
53be9a74ca
Added more sanity checking to portal traversal to avoid spurious error messages if repeat requests come in or for some reason the client and server ever differ in opinion as to which scene the player is in.
Michael Bayne
2005-02-22 18:54:48 +00:00
7ec0eeca56
Added a bevy of interfaces that Sprites can implement to be recognized by the MediaPanel as sprites that interact in some standard way with the mouse. Modified existing ButtonSprite to work this new way, and it now implements CommandSprite, ArmingSprite, and DisableableSprite. One method name changed.
Ray Greenwell
2005-02-22 04:14:44 +00:00
097730e84d
Update for 2005.
Michael Bayne
2005-02-20 00:37:52 +00:00
121f6d7e53
Did the refactoring necessary to get the client and server to live happily together in one JVM and both interoperate with the AWT thread in a manner so harmonious as to bring a tear to the eye. This was surprisingly much easier that I expected, thanks to my eminently sensible initial design, I'm sure. ;)
Michael Bayne
2005-02-20 00:37:34 +00:00
41fb0b1b80
The PuzzleService was superfluous. The ParlorService can handle starting single player games and indeed should because it's useful outside the context of puzzles and their ilk.
Michael Bayne
2005-02-19 22:38:06 +00:00
4036d12121
Further test fixes.
Michael Bayne
2005-02-17 02:14:44 +00:00
e8705b6137
We need more libraries.
Michael Bayne
2005-02-17 02:07:10 +00:00
c0cd2cd3ca
Further repairs to the build configuration.
Michael Bayne
2005-02-17 02:05:35 +00:00
2198748dcb
Brought the tests back into the land of compilability.
Michael Bayne
2005-02-17 01:54:54 +00:00
ebf4d7cfa2
Now throws the proper type of exception when a color name lookup fails.
Ted V
2005-02-16 22:21:01 +00:00
785259a4a8
Quite obviously the parsing should check for integers, not bytes.
Ted V
2005-02-15 21:44:35 +00:00
d618c12c93
Added accessor function that handles color name -> id lookups. Could be made faster with some sort of reverse string lookup table, but it doesn't seem worth the overhead right now.
Ted V
2005-02-15 20:53:49 +00:00
93794d5a77
Fixed some comment grammar.
Michael Bayne
2005-02-15 01:02:17 +00:00
877892b4c8
Allow the ZoneManager to veto a body's departure from the zone.
Michael Bayne
2005-02-15 00:58:16 +00:00
7cf98ba971
Automatically lay out our label if it has not already been.
Michael Bayne
2005-02-14 03:01:28 +00:00
99d382fdbf
Updated the constructor.
Michael Bayne
2005-02-14 03:01:14 +00:00
459d677a2f
Provide the AbstractMediaManager with a reference to the panel it's working with rather than just the RegionManager.
Michael Bayne
2005-02-14 03:00:58 +00:00
113ca65f7a
We need to know who did the dirty deed.
Michael Bayne
2005-02-10 22:47:56 +00:00
8f9af12fdb
Use a direct buffer for our overflow queue partial buffer as well because there will be relatively few of those (at most one per client that is experiencing lag) and while the client is experiencing lag we will be trying to write their data once per pass through the sockets (which could be hundreds of times a second) and we don't want each write attempt to result in the creation of a temporary direct buffer.
Michael Bayne
2005-02-10 04:39:23 +00:00
10e84f9471
Gee wally, now that sound is fixed, let's go back to expiring late sounds at a reasonable time again.
Ray Greenwell
2005-02-10 04:00:12 +00:00
5ff24097a7
Tested and verified: the bug is fixed. Removed extra debugging, found another instance of append() that needed to be changed to appendLoud().
Ray Greenwell
2005-02-09 23:02:39 +00:00
2ff14aa456
Well then! That last bit of debugging has finally shown me the light! Queue.append() only does a notify() if the queue was previously empty. So when the dobj thread was requesting two sounds one after another, it only woke up one player thread, which played the first sound and then came back 'round to play the next sound after it was done. The next sound was usually expired by that time.
Ray Greenwell
2005-02-09 22:34:55 +00:00
67521e973d
Even more logging, to ensure that two different threads are indeed playing these two different sounds.
Ray Greenwell
2005-02-09 22:02:22 +00:00
86757cb55e
Even more verbose logging to figure out why the sound manager is being so slow.
Ray Greenwell
2005-02-09 20:59:14 +00:00
f027797120
Added some more info to some logging, cleaned up formatting of logging.
Ray Greenwell
2005-02-09 19:55:31 +00:00
60c5f60a23
Added additional verbose logging to figure out why some clips take so long to get played.
Ray Greenwell
2005-02-08 07:09:05 +00:00
cb6da9d5bc
Playing with the sound under windows, it seems that a lot of sounds are getting dropped because they're taking too long to play. Extended the max delay to 1000ms, which will surely help more sounds play, but may not be worth it. Hey, we've got a test server to test on...
Ray Greenwell
2005-02-08 06:26:27 +00:00
45ec296ba0
Here's a giant performance improvement: the current Presents architecture flattens messages into a buffer and then passes that bucket to a SocketChannel.write() method which is part of the NIO business. If said buffer is a "direct" buffer, the write() method will in theory do high-performance shit like DMA the data right to the network card. If it's not a direct buffer, Sun apparently makes a temporary direct buffer, copies the data into it and passes that on to the underlying socket send() call. We weren't using direct buffers which means that we were copying everything one more time than needed (not a huge deal) and that we were allocating a direct buffer for every message (a much bigger deal). This should take a serious load off of the I/O thread and fortunately we can test it on Ice to make sure it doesn't do anything super crazy.
Michael Bayne
2005-02-08 05:08:47 +00:00
53c3435854
Handle cases where one or the other direction does not scroll for lack of need.
Michael Bayne
2005-02-07 03:53:54 +00:00
ff4f9d4a9c
A helper that makes it easy to wire up scrollbars or a scrollbox to a virtual media panel.
Michael Bayne
2005-02-07 03:37:39 +00:00
02db6a2b73
Further cross-"platform" jockeying.
Michael Bayne
2005-02-03 01:59:59 +00:00
40b6fc31d7
More jockeying to make things happy with Linux and FreeBSD.
Michael Bayne
2005-02-03 01:30:33 +00:00
d49873820d
Use names that correspond with System.getProperty("os.name").
Michael Bayne
2005-02-03 01:25:21 +00:00
279849151c
Use names that correspond with System.getProperty("os.name").
Michael Bayne
2005-02-03 01:24:57 +00:00
924ab5c9e6
We've got crablegs! And a special Makefile for Linux and FreeBSD.
Michael Bayne
2005-02-03 01:22:28 +00:00
ecf7c7f415
Fuck me riding a pony; whatever goddamned make that FreeBSD uses is sufficiently incompatible with GNU make that I'd rather just have two whole separate goddamned directories with their own Makefile than try to get everyone to agree on how to do things.
Michael Bayne
2005-02-03 01:16:12 +00:00
f26c58ef4d
Revamped things to work in multiple flavors of Joonix.
Michael Bayne
2005-02-03 01:02:58 +00:00
f7109f64bf
Was doing some debugging; opted to leave the log import checked in.
Ted V
2005-02-01 23:11:42 +00:00
66321690e6
Animation now accounts for X acceleration.
Ted V
2005-02-01 20:42:21 +00:00
6206d9f71b
Added construction interface for X axis acceleration.
Ted V
2005-02-01 20:22:09 +00:00
bf463e46e9
Left logging import.
Ted V
2005-01-28 22:52:53 +00:00
42fb1f095b
Needed some debug information from this class; figured I'd leave the Log import in there.
Ted V
2005-01-28 21:13:27 +00:00
56417cdb0a
Indicate whether we rejected an attempt to logon because we're still in the throes of a previous connection. Also don't spuriously recreate our ticker because it's very possible for logon() to be called and not logoff(), logon() might fail, for example.
Michael Bayne
2005-01-28 05:03:37 +00:00
44be1bda18
Fixed bug where action animations and sprites weren't being removed when all animations and sprites were cleared out.
Ted V
2005-01-28 03:28:38 +00:00
81487748dc
Scale animations now report when they've finished.
Ted V
2005-01-28 00:07:56 +00:00
d8749a8b41
Bunch of updates to handle actual drawing of the image. Some bug fixes too.
Ted V
2005-01-27 23:59:39 +00:00
4033d08113
Most of the class has been rewritten.
Ted V
2005-01-27 21:17:59 +00:00
cdb7284ea2
Skeleton of a scaling animation stolen from GleamAnimation. Nothing has been changed, except the names to protect the innocent.
Ted V
2005-01-27 20:49:34 +00:00
aa80b920c8
More documentation updates.
Michael Bayne
2005-01-27 04:48:00 +00:00
ae5105185c
More progress on our glorious Presents documentation.
Michael Bayne
2005-01-27 04:16:45 +00:00
c11e8c4d3c
The beginnings of documentation for the Presents distributed object system. Oh the complexity.
Michael Bayne
2005-01-27 01:55:48 +00:00
dc09c1214d
Added getTimeString() which returns more than one element of a duration (example: 3 hours, 12 minutes and 32 seconds).
Ray Greenwell
2005-01-27 00:46:44 +00:00
d2ea985abb
Regenerated invocation receivers; fixing a javadoc booch in the process.
Michael Bayne
2005-01-24 23:13:00 +00:00
afabea71ad
Big fat Bernie javadoc cleanup.
Michael Bayne
2005-01-24 23:08:21 +00:00
dd04679568
Deal with the new Invoker.UnitProfile when reporting profiling statistics, changed the output format to be the same as the one for DObjectManager profiling output.
Michael Bayne
2005-01-24 17:17:27 +00:00
be93e5eb12
Make sure to catch any error while processing our events, not just when actually dispatching the event to subscribers. We can't trust anyone.
Michael Bayne
2005-01-24 07:59:31 +00:00
05d72fb406
In the fix for the macintosh copy area bug, it's pointless to compute the rectangle of the area that would have been copied, as we know that the _entire_ visible area is now dirty due to the failed copy. Replace the list of dirty rectangles with one rectangle encompassing everything, it will cut down on the iterations in the paint() method and should improve performance on the JVM that exhibits the copyArea bug.
Ray Greenwell
2005-01-21 23:59:04 +00:00
69fd36030f
Added support for using a custom classloader when loading message bundles.
Michael Bayne
2005-01-20 16:32:10 +00:00
8f40cfa2e3
Be sure to mark all the sound playing threads as daemon.
Ray Greenwell
2005-01-20 00:07:27 +00:00
64b5b856ca
We need to translate mouse wheel events as well.
Michael Bayne
2005-01-19 16:09:17 +00:00
2b085bd8c2
Finished a weekend project: rewrote the SoundManager.
Ray Greenwell
2005-01-17 23:30:38 +00:00
f2a5845db9
GameManager was calling gameDidEnd for games that never began. Changed to check that the game was actually in play.
Andrzej Kapolka
2005-01-14 22:49:13 +00:00
93ef73095e
Make it possible for external entities to add delegates.
Michael Bayne
2005-01-14 17:06:23 +00:00
b295fb2630
Regenerated with non-NPEing code.Regenerated with non-NPEing code.Regenerated with non-NPEing code.Regenerated with non-NPEing code.
Ray Greenwell
2005-01-08 22:05:00 +00:00
8446cf4f78
We can't clone null.
Ray Greenwell
2005-01-08 22:02:27 +00:00
033e3984b6
Added a potentially dangerous temporary hack to deal with people not having compatible CreateAccountCredentials, and being told that our servers are down when they try to create an account.
Ray Greenwell
2005-01-06 19:28:53 +00:00
c59290c91f
Allow tables of one player which are started immediately.
Michael Bayne
2005-01-06 07:32:06 +00:00
5ba72dce1a
Occam's razor.
Ray Greenwell
2005-01-05 08:07:13 +00:00
61c0dde5d5
Regenerated the distributed objects with the new clone happy bits.
Michael Bayne
2005-01-05 06:46:11 +00:00
e5acc3e45f
More DObject fun! We need to keep a careful separation for container objects (DSet, arrays) in a DEvent (which should not change as a result of other events being applied) and those in the object itself (which do change and evolve as events are applied to the object).
Michael Bayne
2005-01-05 06:24:11 +00:00
7777a14c9c
DSet already complains if we add a duplicate; no need to do so twice.
Michael Bayne
2005-01-05 06:00:37 +00:00
920726f9f9
Noticed some other cleanup that could now be done.
Michael Bayne
2004-12-31 05:31:53 +00:00
0127ccba96
Only Yohoho needs the game object registered as an auxiliary source because it plays games in a special place rather than actually moving the player into the game room which naturally registers the place object as a chat source. Fortunately, we can implement the necessary hackery to support Yohoho in a reasonably generic manner.
Michael Bayne
2004-12-31 05:30:38 +00:00
f9f3d784cf
My laptop repeatedly gets the sound looping bug, and I noticed that it goes for about 30 seconds before stopping. We keep the line open for 30 seconds, waiting for another sound, and there must be a bug in the Java libraries that sometimes loops the end of the sound. Expire LineSpoolers after 1 second. If this works I may restructure things so that the threads stay around longer but the lines get closed immediately after the drain delay.
Ray Greenwell
2004-12-29 21:56:58 +00:00
a6da0baf48
Regenerated in the new DObject world order.
Michael Bayne
2004-12-28 03:51:47 +00:00
55a0ab91f7
Regenerated our DObject derivations in the new world order.
Michael Bayne
2004-12-28 03:51:29 +00:00
d27b150365
Comment fixy.
Michael Bayne
2004-12-28 03:50:07 +00:00
9386fabeee
Use the new DObject.changeAttribute() instead of hand-constructing an AttributeChangedEvent which is no longer allowed.
Michael Bayne
2004-12-28 03:49:23 +00:00
1fde5f69c0
Added a getter for the frame's manager.
Michael Bayne
2004-12-28 03:48:40 +00:00
1d976ceaf8
Merry Christmas to the server CPUs. It occurred to me that we could accomplish our "previous value" support in the distributed object system without using reflection and could also avoid using reflection in the case where we have already applied the event on the server (which is generally the case on the server).
Michael Bayne
2004-12-28 03:48:07 +00:00
bd80c348eb
The great Interval revamp. There is no more SafeInterval, instead Intervals can be constructed with a RunQueue to use for expiring. PresentsDObjectMgr implements RunQueue. Client has a getRunQueue() method to get the client side RunQueue.
Ray Greenwell
2004-12-22 19:23:00 +00:00
8ee6cb6fae
There is no more nodemap.jar
Ray Greenwell
2004-12-22 19:00:30 +00:00
60582d2f5c
May as well let the PAUSE key pause/unpause, and cleaned up comments.
Ray Greenwell
2004-12-22 00:23:10 +00:00
6b8ac486b3
Removed ancient nodemap stuff of questionable value.
Ray Greenwell
2004-12-22 00:04:07 +00:00
19aaa0fa3c
Rather than greatly complicating the user interface (and code) for defining custom keys to include a 'global' section, I've just re-added the P key in a hard-coded manner. If the P key is pressed, the puzzle isn't already paused, and the user has not redefined P to perform some other command in the puzzle, it will pause.
Ray Greenwell
2004-12-20 23:46:36 +00:00
7afefd747b
Only allow sprites and objects to be clicked with the first mouse button. Will this change be as ill received as removing "P" from chat? Who knows.
Ray Greenwell
2004-12-15 23:01:45 +00:00
cea4f80676
Compute from the screen size the longest we will allow our A* paths to reach while path finding.
Michael Bayne
2004-12-15 03:29:32 +00:00
b56061da46
Added a default implementation of getRatingTypeId() as well since that's a wacky notion from Yohoho that shouldn't really be in parlor in the first place.
Michael Bayne
2004-12-15 02:39:58 +00:00