f79d2de522
Don't bail out so early. We may have already updated the user object but need to update another place object with a subsequent call to updateOccupantStatus().
Michael Bayne
2002-11-06 04:12:39 +00:00
be6645db40
Have the sprite animation start the sprite along its desired path the first time the animation is ticked so that we don't get apparently physics defying behavior if someone creates a sprite and sprite animation but then doesn't activate the animation immediately.
Michael Bayne
2002-11-06 01:40:39 +00:00
1f44f241c3
Logging cleanups.
Michael Bayne
2002-11-06 01:39:32 +00:00
7acc400904
Added toString().
Walter Korman
2002-11-06 00:05:16 +00:00
10c2251bdb
This is tricky business; we need to be more careful about how we handle animations triggered on the completion of previous animations so as not to booch things if a triggered animation is queued up after all previous animations have already been started.
Michael Bayne
2002-11-05 23:56:35 +00:00
562111a95d
Better debug logging.
Michael Bayne
2002-11-05 21:53:56 +00:00
07ee41afef
Whoops! Didn't finish the job prior to that last checkin.
Michael Bayne
2002-11-05 21:29:00 +00:00
b24800922a
Changed addAnimation() to startAnimation(), made it protected. Removed getAnimationCount() because it's no longer valid.
Michael Bayne
2002-11-05 21:27:49 +00:00
f3fd0744ec
Further clean up. We love helper classes.
Michael Bayne
2002-11-05 21:17:32 +00:00
da1119b61a
Cleaned up and robustified. There were issues.
Michael Bayne
2002-11-05 21:12:55 +00:00
a1fb4647a5
Removed vestigal test logging.
Michael Bayne
2002-11-05 21:03:31 +00:00
2ab8861dba
- Set the resource freeing timer to operate in non-repeating mode, since I previously stopped it every time it fired anyway. - Enforce a maximum queue size for played sounds so that things don't get out of hand.
Ray Greenwell
2002-11-05 21:02:03 +00:00
3eba0dcf13
Animation sequencer revamp: animations can be added incrementally; animations can be cued on the completion of the previous animation; runnables can be provided for invocation upon animation completion or in place of an animation in the chain.
Michael Bayne
2002-11-05 20:53:53 +00:00
d5dbc514ca
Use observer lists.
Michael Bayne
2002-11-05 20:52:39 +00:00
400b8ca638
Use ObserverList; provide timestamp to animation events.
Michael Bayne
2002-11-05 20:51:50 +00:00
144cf2299a
Provide a timestamp with animation events.
Michael Bayne
2002-11-05 20:51:13 +00:00
ece79bc86c
Use observer lists for our observers instead of array lists.
Michael Bayne
2002-11-05 20:50:42 +00:00
6a2cc6a16f
optimize common case of having no dirty rectangles
Ray Greenwell
2002-11-05 18:52:11 +00:00
e05341f035
When the JViewport scrolls its components, it simply calls setLocation() which results in the component (and every other component in between that component and the Sun) becoming invalid. Unfortunately, it isn't kind enough to also let the RepaintManager know about its jokey business, and so things simply remain invalid until some other joker comes along and invalidates everything on God's green earth (like the JTextField). We hack in a call to revalidate() on our poor unsuspecting scrolled component so that everything will work properly.
Michael Bayne
2002-11-05 05:51:18 +00:00
b69e92c992
The joy of Swing. We have to refuse to acknowlege JScrollPane instances as validate roots because when their children are invalidated, it causes the entire hierarchy to be invalidated, which we then must revalidate lest they live the rest of their mortal lives as invalids.
Michael Bayne
2002-11-05 05:49:31 +00:00
b9fe4f4b01
Do our disconnect fiddling on the new safe sessionConnectionClosed() calldown method rather than the old wasUnmapped() which is called on the conmgr thread.
Michael Bayne
2002-11-05 05:48:18 +00:00
0cd73d2e56
Expose a calldown method that is called on the dobjmgr thread when a client loses their connection (either gracefully or not).
Michael Bayne
2002-11-05 05:47:36 +00:00
0608a27c67
Set the sprite's location to exactly what it needs to be in order for its image to render in the upper left of where we want it.
Michael Bayne
2002-11-05 03:40:06 +00:00
118f6b2363
Provide access to the x and y origin offsets.
Michael Bayne
2002-11-05 03:38:59 +00:00
260c304fbe
Report more useful information if an already in-play game is requested to start.
Michael Bayne
2002-11-05 02:24:42 +00:00
fa206b76ed
Metrics! Added support for a "state of the server" report, in which managers can participate, reporting lies, damned lies and useful statistics. Initial participants include the client manager, the connection manager and the distributed object manager.
Michael Bayne
2002-11-05 02:17:56 +00:00
65bc9f7eff
Return number of bytes written when writing a frame.
Michael Bayne
2002-11-05 02:16:46 +00:00
d81451c2c1
Create ClusterObject instances for cluster chat objects.
Michael Bayne
2002-11-04 23:02:10 +00:00
6edc33c6ed
Created a specialization of DObject to use for cluster event dispatch. This is mainly so that these objects show up as distinct in our DObject table reports.
Michael Bayne
2002-11-04 22:33:39 +00:00
dea46e4cc0
Assume the keyboard focus, or relinquish it, when we're enabled or disabled respectively. Sanity-check before adding ourselves as a window focus listener when enabled to make sure we don't add ourselves more than once.
Walter Korman
2002-11-04 22:28:58 +00:00
01219cd341
Added ChatterValidator interface to validate usernames before they can be added to the 'chatters' list.
Ray Greenwell
2002-11-04 20:06:15 +00:00
e8ee391d24
Report moveTo() for now as it may inform the hunt for the puzzle in world view bug.
Michael Bayne
2002-11-03 01:15:36 +00:00
3736670fb0
Refuse to set a null scene.
Michael Bayne
2002-11-03 01:15:06 +00:00
271d0ffb85
a timorous transition from listening to stop events to just calculating the time at which the sound will stop. Stop events are flawed.
Ray Greenwell
2002-11-02 01:49:20 +00:00
c81cf22659
Don't complain about receiving playerReady() for non-players if the game is a party game.
Walter Korman
2002-11-02 01:20:59 +00:00
7b9f0332f1
Cleaned things up so that a single keyboard manager is to be constructed and used throughout an application that cares to make use of its functionality. Allow registering key observers that are notified of all key presses while the keyboard manager is active. Clear things out properly when the keyboard manager is disabled or reset.
Walter Korman
2002-11-02 00:59:00 +00:00
4cbca95044
Sound manager revamp. - let the AudioSystem figure out the file format from the sound data. - LRU cache for clip data - Don't free system resources from clips until at least 4 seconds after they're finished playing. Reuse clips (and their resources) when possible.
Ray Greenwell
2002-11-02 00:26:55 +00:00
cf101fad52
Don't need dobjmgr in BodyProvider's constructor.
Walter Korman
2002-11-01 21:33:49 +00:00
1c5165e44b
Update a user's status in their occupant info via the place manager as required, rather than directly in the place object. Don't need dobjmgr in constructor.
Walter Korman
2002-11-01 21:33:21 +00:00
9347fec9ce
Populate newly created occupant info with the body object's status.
Walter Korman
2002-11-01 21:32:23 +00:00
383d500f4b
Created LACK_ACCESS error code; use it for chat.
Michael Bayne
2002-11-01 01:01:27 +00:00
8f1bfa66ff
Freak out when they don't have access. Not when they do.
Michael Bayne
2002-11-01 00:57:50 +00:00
f25c028cca
Initial work on a body service to allow setting a user's idled state.
Walter Korman
2002-11-01 00:39:18 +00:00
b07fef8396
Added support for a global message bundle to which other bundles fall back if they can't find a message in their own list of strings.
Michael Bayne
2002-11-01 00:01:37 +00:00
dd4b1c69c3
Added broadcast chat mechanism.
Michael Bayne
2002-10-31 23:27:16 +00:00
35f3173694
Added pluggable mechanism for feature-level access control.
Michael Bayne
2002-10-31 21:32:39 +00:00
bb22856f76
Changed get...() to enumerate...().
Michael Bayne
2002-10-31 21:32:15 +00:00
2e32b6c3a7
Periodically scan the clients table and end the session of any expired clients.
Michael Bayne
2002-10-31 21:04:19 +00:00
79259479c6
Make a note of when we started our session and when we most recently connected or disconnected. Use this to determine if a client has "expired" (meaning they've been disconnected for too long).
Michael Bayne
2002-10-31 21:03:57 +00:00
2f7399ed68
Added support for specifying a version string during the client authentication process.
Michael Bayne
2002-10-31 18:44:34 +00:00
f1c8ccd347
Added PlaceManager.applyToOccupants(), and a generic useful OccupantOp.
Walter Korman
2002-10-31 01:12:08 +00:00
8252efeed1
No more ping verbosity.
Michael Bayne
2002-10-30 18:46:33 +00:00
d9f7ebc792
Busted a cap in the accidentally-left-in verbose logging that pissed me off so much while I was sailing around. Take that you little fucker! How do you like that, huh?
Walter Korman
2002-10-30 09:34:08 +00:00
c919832043
we actually want to report disconnect time with a granularity of SECOND
Ray Greenwell
2002-10-30 01:56:17 +00:00
316634eb58
report idle / disconnected times when whispering.
Ray Greenwell
2002-10-30 01:47:12 +00:00
7adcf49ef3
We need to allow the caller to specify the location in which the users status should be updated.
Michael Bayne
2002-10-30 00:47:19 +00:00
77ae8c7d0f
Maintain user's status in their body object; also maintain a timestamp that indicates the time at which their status became what it is.
Michael Bayne
2002-10-30 00:42:37 +00:00
6b651c2f9c
Don't request to dirty an invalid region if we scroll more than an entire screen vertically, instead request to dirty one with zero height.
Michael Bayne
2002-10-30 00:27:37 +00:00
92c6a8a564
Complain about invalid dirty regions; ignore useless regions.
Michael Bayne
2002-10-30 00:26:53 +00:00
98d19e055a
Added facilities for idling out clients that have not communicated with the server in 90 seconds. The client is set up to ping the server if it has had nothing to say to it for other reasons in the last 60 seconds.
Michael Bayne
2002-10-29 23:51:26 +00:00
af5b530b4c
Fixed log message formatting.
Walter Korman
2002-10-29 23:44:23 +00:00
6334b6d690
Sanity-check dirty rectangles when painting the media panel.
Walter Korman
2002-10-29 20:33:51 +00:00
092e0f110c
Sanity-check for null dirty rectangles.
Walter Korman
2002-10-29 20:33:26 +00:00
e94ff3de5e
Added shiftToContain().
Michael Bayne
2002-10-29 06:07:22 +00:00
5c189fbb14
Added isWinner() and getWinnerIndex().
Walter Korman
2002-10-29 02:09:03 +00:00
b5e5f5f4e1
director audit: make sure things shut down well.
Ray Greenwell
2002-10-28 00:22:38 +00:00
883f912a30
Added gameWillEnd(), and GameObject.winners that details the winners of the game, as assigned by GameManager.assignWinners() when the game ends.
Walter Korman
2002-10-27 23:54:32 +00:00
556347c778
Clear things out when the client logs off.
Walter Korman
2002-10-27 23:30:56 +00:00
c3743cd98c
change to ChatDisplay.clear() method signature
Ray Greenwell
2002-10-27 22:34:43 +00:00
811ccd0bf1
when the client logs off, forcibly clear all chat displays
Ray Greenwell
2002-10-27 22:34:11 +00:00
a3eb2e1b7a
changed clear() -> clear(boolean force), if force is true, ChatDisplays may not ignore the request to clear.
Ray Greenwell
2002-10-27 22:33:42 +00:00
34e777c444
Debug log fiddle.
Michael Bayne
2002-10-27 22:24:59 +00:00
e166a3efff
Debug logging.
Michael Bayne
2002-10-27 22:24:20 +00:00
31baef425a
Director audit: make sure these guys clean up after themselves when the client logs off.
Michael Bayne
2002-10-27 22:23:14 +00:00
7aa16f09e0
Removed obsolete comment.
Michael Bayne
2002-10-27 22:19:21 +00:00
2625d76084
Oh god, how did I accidentally leave this in here? Removed verbose logging.
Walter Korman
2002-10-27 21:58:18 +00:00
6781e1da56
Oh the price we pay for wanting to be able to logoff and log back on without exiting the client.
Michael Bayne
2002-10-27 21:24:58 +00:00
14a313486b
Documentation repairs.
Michael Bayne
2002-10-27 18:49:51 +00:00
4b97ff9916
Fixed typo in javadoc.
Walter Korman
2002-10-27 02:05:26 +00:00
a5576eed88
Factored out code to update a player's connection status to make it available for use by derived classes, and because it's cleaner this way.
Walter Korman
2002-10-27 02:04:50 +00:00
657a8a6f03
Initial version.
Walter Korman
2002-10-27 02:03:40 +00:00
28a3cde90b
Use an ObserverList.
Walter Korman
2002-10-27 02:03:13 +00:00
76ba2840c4
Provide access to the values that existed previous to the application of events that change values.
Michael Bayne
2002-10-27 01:33:43 +00:00
bb489caf39
New OccupantObserver signature.
Michael Bayne
2002-10-27 01:25:18 +00:00
561f25bb18
Provide the previous occupant info record when reporting an update so that observers can determine which fields have changed.
Michael Bayne
2002-10-27 01:25:08 +00:00
2c2a9f819d
Documented SafeScrollPane requirement.
Michael Bayne
2002-10-26 20:31:15 +00:00
868ce6f471
Added method for obtaining the sign of a value.
Michael Bayne
2002-10-26 20:31:06 +00:00
fec48b8586
Track a user's connection status in their occupant info so that we can react to player disconnection, idle (implementation still pending), and reconnection appropriately. Added PlaceManager.bodyUpdated().
Walter Korman
2002-10-26 02:40:30 +00:00
ad344e05e1
Fixed typo in javadoc.
Walter Korman
2002-10-26 02:37:59 +00:00
286892639e
Removed the vestigal return as it confused the comment.
Michael Bayne
2002-10-25 21:15:27 +00:00
f7b462b9c2
added MuteObserver interface.
Ray Greenwell
2002-10-25 20:32:41 +00:00
fd44620d57
Incorporate a hash of the resource URL into the cache directory so that bundles from one client installation don't overwrite bundles from another.
Michael Bayne
2002-10-25 17:21:00 +00:00
beca9850aa
Return null in getImageSource() if the specified bundle can't be found, as was documented, so that callers can do things like fall back to trying the classpath rather than having the previously-thrown IOException circumvent the rest of their antics.
Walter Korman
2002-10-25 00:44:16 +00:00
dd912c3d7d
Need to use getPlayerSlots() not getPlayerCount().
Michael Bayne
2002-10-24 19:05:46 +00:00
58d33880b1
Added getPlayerSlots() which returns the maximum number of players allowed in the game and which doesn't choke if called before we have a game object. Modified code to use it where appropriate.
Michael Bayne
2002-10-24 18:51:41 +00:00
d46423ea7b
Added addPlayerAt(). Don't send gameReady notification to players when added since it's (at least currently) assumed that the puzzle has already been created and the player is fully present in the puzzle room. Sanity-check to disallow adding a player to a game more than once.
Walter Korman
2002-10-24 07:01:08 +00:00
ea6733ba20
Log image dimensions when given a badly sized image.
Walter Korman
2002-10-22 02:05:42 +00:00
2a26c76006
Deal gracefully with images that we can't usefully tile (which includes the default 1x1 transparent image we're given if the image manager failed to load an image successfully.)
Walter Korman
2002-10-22 02:02:40 +00:00