b32ca52809
Fixed up logging; added code to mark a location as reserved when we return it from a call to getUnoccupiedLocation(). Anyone can move into the location (regardless of who reserved it), but it won't be reported as unoccupied until someone enters it and leaves from it once again.
Michael Bayne
2002-06-20 22:38:58 +00:00
01d2318133
Convenience method for reporting username and object oid easily.
Michael Bayne
2002-06-20 22:37:32 +00:00
9f61770db1
Removed verbose debugging.
Michael Bayne
2002-06-20 22:16:09 +00:00
eb3a4909d6
Moved getUnoccupiedLocation() into SpotSceneManager; created SpotSceneUtil which contains the routines to do it; modified said routines to allow them to be called with the internal location tracking array maintained by the spot scene manager because that is the only thing guaranteed to be truly up to date; made use of where() in spot scene manager's log messages.
Michael Bayne
2002-06-20 22:14:58 +00:00
cb14ec144c
Use IntListUtil.
Michael Bayne
2002-06-20 22:13:39 +00:00
300312782a
Added a StringUtil Formatter for printing out only the user oid and location id from an occupantInfo set.
Michael Bayne
2002-06-20 22:13:20 +00:00
fadf226677
Added convenient where() method to PlaceManager which is used when logging errors to report the "place" in which the error happen. The SceneManager overrides this to include scene information. Scrupulous use will make log messages much more scrutable.
Michael Bayne
2002-06-20 22:12:23 +00:00
d88e6bc490
Provide access to scene name.
Michael Bayne
2002-06-20 22:10:56 +00:00
1f80cf9805
Cleaned up some sprite business: better documented various things, changed local member names to reflect their actual functionality, flipped the sign of the origin offset so that it's an offset rather than a negative offset.
Michael Bayne
2002-06-20 21:42:53 +00:00
29cd8ec051
Sanity check the sources we're passed for compositing.
Michael Bayne
2002-06-20 18:31:03 +00:00
15e23c1076
Only fetch our default GraphicsConfiguration if we're using it.
Michael Bayne
2002-06-20 17:54:26 +00:00
b09989f928
Added getLabel().
Walter Korman
2002-06-20 09:01:28 +00:00
ea31232166
Added code to ensure that the scene view is not scrolled outside the bounds described by the view model.
Michael Bayne
2002-06-20 07:50:33 +00:00
fd05e9cdbc
Added access to the pathable's bounds.
Michael Bayne
2002-06-20 07:50:02 +00:00
7562ba50f5
Fixed bug when rendering scrolling view (need to set the clip properly before scrolling); added encloses pathable mode which is like follows pathable except that the pathable is not tracked with the center of the screen but instead their bounds are kept inside the visible area.
Michael Bayne
2002-06-20 07:49:44 +00:00
43191a0512
Minor reformatting.
Walter Korman
2002-06-20 07:47:14 +00:00
b0ab364885
Zoiks! Ze bug!
Michael Bayne
2002-06-20 00:58:36 +00:00
5db81eb137
Don't check for sprite collisions presently. We'll have to revisit this when we actually want to use the collision support.
Michael Bayne
2002-06-20 00:54:53 +00:00
d18ce7a79d
Call GameManagerDelegate.setAI() when a player is set to an AI player. Don't expose the game manager's internal AI skill level array to external parties.
Walter Korman
2002-06-19 23:41:25 +00:00
0ddf11ab57
Major revampage to support composited actions that create images that are exactly big enough to accomodate all of their trimmed components and no bigger.
Michael Bayne
2002-06-19 23:31:57 +00:00
330767e193
Cleaned up a few things related to render origin. If a derived class wants the render origin to be other than (_x, _y) it can update (_rxoff, _ryoff) when it is appropriate to do so, but we don't really need an overridden method to do that.
Michael Bayne
2002-06-19 23:30:06 +00:00
73ee48bc3f
Provide access to our trimmed bounds.
Michael Bayne
2002-06-19 23:28:14 +00:00
dd85c179f2
Updates to reflect cleanups.
Michael Bayne
2002-06-19 23:24:19 +00:00
5a98d450a1
Cleaned up; don't attempt to edit classes with no components; no need to use the FrameManager and MediaPanel for displaying sprites since we're not doing things properly anyway (properly meaning using a sprite manager and all the associated business).
Michael Bayne
2002-06-19 23:24:04 +00:00
a3196fbad3
added inValidLocation() to check if an player is in a non-portal location within the room.
Ray Greenwell
2002-06-19 23:22:51 +00:00
5bfbc9f17a
Provide access to player info via safer getter methods rather than giving away references to our internal arrays.
Michael Bayne
2002-06-19 23:18:58 +00:00
823bafb2f5
added ChatValidator interface, so that validators can be registered to veto speak or tell requests.
Ray Greenwell
2002-06-19 23:12:48 +00:00
6b8e19f011
Make the array of AI skill levels accessible so that delegates can figure out what kind of AI-related machinations they should engage in during startup. Added isAI() to allow checking whether a particular player index belongs to an AI player.
Walter Korman
2002-06-19 23:06:08 +00:00
8e4d4382bd
ComponentBundlerTask now requires the action definitions.
Michael Bayne
2002-06-19 21:15:47 +00:00
50d78fecc4
removed unused method
Ray Greenwell
2002-06-19 20:27:07 +00:00
33158f5e8a
Component bundling process now automatically generates trimmed tilesets and images from the untrimmed source tilesets and images.
Michael Bayne
2002-06-19 08:33:14 +00:00
fcc65fc4d9
A utility class for generating a trimmed tileset (and associated trimmed image) from some other (presumably non-trimmed) tileset.
Michael Bayne
2002-06-19 08:29:59 +00:00
2c50a44608
Formatting fix.
Michael Bayne
2002-06-19 08:28:55 +00:00
38584bb12e
Switch to using a subimage instead of clipping because clipping creates too much garbage.
Michael Bayne
2002-06-19 08:28:25 +00:00
1b6811d221
Tileset -> TileSet.
Michael Bayne
2002-06-19 08:27:35 +00:00
5214d15ac6
Tileset => TileSet; made getTileSetImage() public so that the trimming code can get to the underlying tileset image.
Michael Bayne
2002-06-19 08:27:06 +00:00
2c9be83574
Moved subimage creation into overridable method.
Michael Bayne
2002-06-19 08:26:22 +00:00
f8c31a6432
More utility methods: one for creating a new image with the same configuration as another and one for computing a rectangle that bounds all non-transparent pixels in an image.
Michael Bayne
2002-06-19 08:24:22 +00:00
8ca5fc3857
We need to ensure that dirty regions are constrained to the bounds of the component in MediaPanel as well as VirtualMediaPanel.
Michael Bayne
2002-06-19 07:41:37 +00:00
1ef85b78d8
Worked around the Windows copyArea() bug; yay!
Michael Bayne
2002-06-19 02:34:39 +00:00
3976cc2c42
Cache our graphics objects.
Michael Bayne
2002-06-19 00:52:34 +00:00
e91b6420b1
Go ahead and return our cached subimage since we have it.
Michael Bayne
2002-06-19 00:20:49 +00:00
30071e79c2
Lose the magic circle.
Michael Bayne
2002-06-18 23:34:34 +00:00
1f5cfa6f4c
Updated to work with new media architecture.
Michael Bayne
2002-06-18 22:38:55 +00:00
4036904d0e
Brought miso stuff into line with new media architecture; implemented various and sundry optimizations in the process. We love the spiral development.
Michael Bayne
2002-06-18 22:38:12 +00:00
7253a68c7c
Death, taxes and refactoring: seriously revamped the low-level media code to handle scrolling in a much cleaner and happier way. There's now a VirtualMediaPanel which operates in virtual coordinates and can be made to "view" any location in those virtual coordinates. By changing the view, the view can be scrolled and the view can be made to center on a pathable (generally a sprite) which will cause it to scroll around as the pathable moves around in the virtual coordinate space.
Michael Bayne
2002-06-18 22:25:33 +00:00
4b29f806df
We've discovered that setting the clipping rectangle generates a crapload of rectangle objects. Thus rendering hundreds of tiles each frame has an "undesirable" impact on garbage collection. I think Walter and I were seeing something like 400k per second of garbage. So we're back to extracting a subimage, which we're pretty sure doesn't copy the image data, but simply draws the cropped image data directly from the original rasters without creating shitloads of garbage.
Michael Bayne
2002-06-18 22:19:56 +00:00
f84b6b1e26
Behave appropriately in circumstances where we have no data left to return but the caller asks for zero bytes. In such cases we are to return zero rather than -1 (which would indicate EOF).
Michael Bayne
2002-06-18 22:07:38 +00:00
f91f47d73b
Added ScreenTilePath, which does everything in screen coordinates, but after each movement it updates the sprite that it's moving to tell it the latest tile coordinates.
Ray Greenwell
2002-06-18 21:22:34 +00:00
1f32380f62
Descriptors are inequal if one has colorizations and the other doesn't.
Walter Korman
2002-06-18 04:55:44 +00:00
abcc329e78
Expanded imports.
Walter Korman
2002-06-18 02:35:10 +00:00
a68638ddb9
Added facility for toggling whether object footprints are to be shown.
Walter Korman
2002-06-17 18:01:47 +00:00
e52a400a3f
Allow specifying the color and stroke with which an edge is to be rendered.
Walter Korman
2002-06-15 02:13:11 +00:00
5599b715df
Removed repaint on mouse-move intended only for use when debugging to highlight the last entered node.
Walter Korman
2002-06-15 02:00:05 +00:00
82ce5ad939
Commented out debugging-intended highlighting of the last entered node.
Walter Korman
2002-06-15 01:59:43 +00:00
f3590ef1a0
Expanded imports.
Walter Korman
2002-06-15 01:59:25 +00:00
6c30814f60
Minor reformatting.
Walter Korman
2002-06-15 01:59:12 +00:00
0317828b1d
Clone the occupant info before updating the location. This fixes the beamed-in NPP problem- they were updating their location on the server before the element added event was even distributed to the clients.
Ray Greenwell
2002-06-14 23:03:44 +00:00
830364c48d
Increased the frame action cache size to 30 for now. We'll likely want to allow setting this externally in the near future, but we'll iron that out later when we get around to scrutinizing all of the caching business more closely.
Walter Korman
2002-06-14 21:15:31 +00:00
d61c009a4d
Updated to use fitRectInRect() to position the node tool tip.
Walter Korman
2002-06-14 07:56:29 +00:00
36a8a9672f
zone moves and portal traversals can now have an optional result listener passed in.
Ray Greenwell
2002-06-14 01:40:16 +00:00
891e1a319f
Return true if we send a traverse portal request, false if we don't.
Michael Bayne
2002-06-14 01:27:53 +00:00
a7a427f972
Return true from moveTo() if we actually sent the request, false if the request was rejected out of hand.
Michael Bayne
2002-06-14 01:24:49 +00:00
25b22b4f11
Need to mark our last move request time regardless of whether we have a pending request outstanding.
Michael Bayne
2002-06-14 01:19:16 +00:00
b9000bf08c
Don't declare a pending moveTo request to be stale until at least a minute has gone by. This prevents us from getting shafted by double clicks.
Michael Bayne
2002-06-14 00:57:49 +00:00
541eb01446
Added a constructor that takes two Points and a direction.
Ray Greenwell
2002-06-12 23:33:03 +00:00
4f2ca1dae9
Undid last revision.
Ray Greenwell
2002-06-12 23:31:42 +00:00
4623c07fc2
Undid revisions 1.16 and 1.15: null tiles and invalid coordinates are unpassable again.
Ray Greenwell
2002-06-12 23:30:40 +00:00
9a27409a97
occam's razor
Ray Greenwell
2002-06-12 21:51:19 +00:00
a3628a419c
Upped the ante from my last modification: - invalid coordinates are traversable. - check to see if an out-of-bounds node is requested and gracefully create it.
Ray Greenwell
2002-06-12 17:48:11 +00:00
3f45a25bdb
Store the current round id in the game object rather than tracking separately in the game manager and controller which can then get unhappily out of sync.
Walter Korman
2002-06-12 07:59:19 +00:00
c1a92c761b
Keep track of which locations are portals and don't track users when they move there and prevent more than one user from occupying a portal. Removed unused method.
Ray Greenwell
2002-06-12 07:05:55 +00:00
eadfe2bad1
Don't make the occupant move to the portal location when they traverse it, they'll handle that themselves now.
Ray Greenwell
2002-06-12 07:04:41 +00:00
e3df1a5894
Don't request to change locations if we're already there.
Ray Greenwell
2002-06-12 07:03:23 +00:00
b27a863f62
behavior change: null tiles are passable. Hopefully this doesn't break anything, but it was required to make sprites walk off/on-screen.
Ray Greenwell
2002-06-12 07:02:31 +00:00
7de32e1c24
Be compatible with out superclass, LineSegmentPath, if someone calls it's addNode() method.
Ray Greenwell
2002-06-12 07:01:29 +00:00
7ffa3087e1
Don't switch to a rest action if null is returned by getRestingAction() (used now in YoCharacterSprite)
Ray Greenwell
2002-06-12 07:00:49 +00:00
ad5b77899f
We want to truncate rather than round; it's faster and more consistent with the other math done in the rendering code.
Michael Bayne
2002-06-12 01:11:55 +00:00
cfb8c77d2f
If we're using a path to drive the view, we need to let it know when we scroll.
Michael Bayne
2002-06-12 00:51:24 +00:00
d7a41e61d8
We need the ability to instruct the path *not* to scroll with the view (useful when the path is actually operating in virtual coordinates which are mapped to scrolled view coordinates by the pathable).
Michael Bayne
2002-06-12 00:49:15 +00:00
1a3ad13d6e
Various and sundry revampage to make life easier when scrolling the media panel to follow a path.
Michael Bayne
2002-06-11 21:40:52 +00:00
d05d0c8558
Added getPath() to provide access to the path being followed by the sprite.
Michael Bayne
2002-06-11 05:56:44 +00:00
544d2382ad
Extracted position computation into static method.
Michael Bayne
2002-06-11 02:39:14 +00:00
c1ccaac10d
Javadoc fixes.
Michael Bayne
2002-06-11 00:52:37 +00:00
916513f306
Modified code that makes view follow path to not require an origin point which was a wacky hack in the first place.
Michael Bayne
2002-06-11 00:05:31 +00:00
4c589d3802
Fixed up to conform to new setPath() signature.
Michael Bayne
2002-06-11 00:04:43 +00:00
cccd28ea9d
Now that paths drive the scrolling of our view, we can go back to the simple line path calculations that don't suffer from the accumulated rounding errors that our previous method did.
Michael Bayne
2002-06-11 00:03:30 +00:00
0443a31294
extend SafeInterval
Ray Greenwell
2002-06-10 21:37:13 +00:00
7a9946e0ad
Catch and report any exceptions thrown by Component.paint() to allow peacable continued frame painting in cases where a component gets in a bad way and fails to paint itself happily.
Walter Korman
2002-06-10 21:31:56 +00:00
43f7fc44c1
Modified simulator server interface to allow initializing the server with asynchronous notification when initialization is complete.
Walter Korman
2002-06-10 19:16:41 +00:00
a74f3e4422
Fixed up the code that outlines uncommitted values in red.
Michael Bayne
2002-06-07 18:48:41 +00:00
60a02f3c39
Wired up the field editor to generate and receive attr changed events.
Michael Bayne
2002-06-07 17:34:37 +00:00
6202c1a463
Beginnings of runtime control panel stuff.
Michael Bayne
2002-06-07 06:22:24 +00:00
b81ab2f176
added systemMessage() which can optionally queue up a message for when the game starts.
Ray Greenwell
2002-06-06 22:13:56 +00:00
89d7a1078c
Handle the conversion from mixed to uppercase of fields like serverURL properly (was generating SERVER_U_R_L, now generates SERVER_URL).
Michael Bayne
2002-06-06 07:18:10 +00:00
b9ba9b3d66
bugfix: ImageSprites constructed with their frames were hosed and never got drawn.
Ray Greenwell
2002-06-05 23:38:18 +00:00
4368463907
Created a SafeInterval that requeues itself on the client invoker thread (the main client thread, which will generally be the AWT thread unless the client is being used in a situation where there is no AWT) to avoid bad thread clashy.
Michael Bayne
2002-06-05 02:50:57 +00:00
b46aa1c1c3
Default all games to rated.
Ray Greenwell
2002-06-05 00:47:13 +00:00
67492e13f0
Modified client observer notification process to:
Michael Bayne
2002-06-04 16:34:24 +00:00
1b3b5bb794
Wrote tools to ease the process of renaming tilesets.
Michael Bayne
2002-06-04 02:50:02 +00:00