#pentagram@irc.freenode.net logs for 17 Jun 2003 (GMT)

Archive Today Yesterday Tomorrow
Pentagram homepage


[00:27:51] --> servus has joined #pentagram
[00:51:53] --> Kirben has joined #pentagram
[00:51:53] --- ChanServ gives channel operator status to Kirben
[00:53:06] <-- SB-X has left IRC ("bbl")
[02:11:31] <-- DarkeSleep has left IRC (kornbluth.freenode.net irc.freenode.net)
[02:11:42] <-- Kirben has left IRC (Read error: 54 (Connection reset by peer))
[02:12:04] --> DarkeSleep has joined #pentagram
[02:15:37] --> Kirben has joined #pentagram
[02:15:37] --- ChanServ gives channel operator status to Kirben
[02:15:39] <-- DarkeSleep has left IRC (kornbluth.freenode.net irc.freenode.net)
[02:19:49] --> DarkeSleep has joined #pentagram
[04:40:46] --> SB-X has joined #pentagram
[05:34:41] --> Colourless has joined #Pentagram
[05:34:46] --- ChanServ gives channel operator status to Colourless
[05:35:06] <Colourless> wjp, i know you are not here..... but you think this might be useful (if you can access it, might require registration) http://www.gamasutra.com/features/19991018/Gomez_3.htm
[05:36:03] <Colourless> it's An Axis-Aligned Bounding Box (AABB) Sweep Test
[05:36:30] <Colourless> it's the proper way to do colision detection with a moving object :-)
[05:36:39] <Colourless> and for us, we use Axis-Aligned :-)
[05:40:03] <Colourless> the code there isn't the most correct C++ code (casting), but you'll have an idea of how it works
[06:16:01] <-- Colourless has left IRC ("casts invisibility")
[07:08:03] <-- SB-X has left IRC ("^_^")
[08:28:16] --> wjp has joined #pentagram
[08:28:16] --- ChanServ gives channel operator status to wjp
[08:28:21] <wjp> Colourless: thanks, I'll take a look later
[08:28:38] <wjp> it's members-only, btw, but, um.. they enforce it with *drumroll* javascript :-)
[08:28:52] <wjp> so just disable javascript and you can view the page just fine :-)
[08:29:05] * wjp wonders if he'll be sued under the DMCA for the statement *cough* :-)
[10:25:23] --> Dark-Star has joined #pentagram
[11:38:27] --> Colourless has joined #Pentagram
[11:38:27] --- ChanServ gives channel operator status to Colourless
[11:38:52] <Colourless> hi
[11:39:18] <wjp> hi
[11:40:01] --> Cashman has joined #pentagram
[11:40:42] <wjp> Colourless: any objections to renaming ItemMoveProcess MissileProcess?
[11:40:53] <Colourless> nope
[11:45:12] <Colourless> i've been thinking about the hit and gotHit calls. If an item hits multiple other items, are hit and gotHit called for all the items
[11:45:28] <wjp> I would think so
[11:45:50] <Colourless> i can forsee a problem though, a missile would destroy itself after the hit.
[11:46:02] <wjp> does it?
[11:46:03] <Colourless> so the first hit call of the missle will make the item invalid
[11:46:26] <Colourless> in FIREMISS::hit
[11:46:26] <Colourless> 0111: 0F calli 04h 003A (Item::destroy())
[11:46:31] <wjp> right
[11:47:13] <wjp> so... maybe not :-)
[11:47:34] <Colourless> exactly
[11:47:43] <wjp> it would make things easier, I guess
[11:47:54] <Colourless> but i have to think about floorplates
[11:48:20] <wjp> we have to be really careful that the 'right' item is hit
[11:48:52] <Colourless> with the avatar we could in theory do the hit and gotHit for every item
[11:49:10] <Colourless> because we know that av is never going to be deleted
[11:50:12] --- wjp is now known as wjp|away
[11:50:13] <wjp|away> yes, true
[11:50:19] <wjp|away> for any NPC, for that matter
[11:51:17] <Colourless> it would probably depend on the size of the floorplate object
[11:54:17] <Colourless> they are 128x128 units so they are pretty big
[11:56:49] <Cashman> I see the non admin version of the cvs Is currently more than 24 hrs behind
[11:57:22] <Cashman> I dont know what you guys think but I think its a great idea what kirben did last time
[11:58:53] <Kirben> So just use snapshot again, http://pentagram.sourceforge.net/snapshots/
[11:59:33] <Cashman> how often are you updating?
[12:00:05] <Kirben> Will be at least once a day
[12:00:20] <Cashman> ok
[12:00:27] <Cashman> thats all I wanted to know thanks
[12:01:01] <Colourless> wjp: just doing the first found out that for hit should be fine for floor plates i would think
[12:14:53] <Colourless> i think i know why walking was forced when moving up steps. It might have been because a single step while running could be too large to properly step up (i.e. might move more than one steps distance)
[12:16:31] * DarkeSleep thinks it's because Origin didn't want to look like they supported dangerous activities like running up stairs. *wizenod*
[12:17:17] <Colourless> anyway moving up steps should be fairly trivial when playing animations. if move blocked, check too see if we can move up vertically 8 units, then see if we can move across the distances of 1 step, then apply gravity so we fall to the ground. If we can't move up, attempt to do a single step forward. If that fails and the avatar was running, play the 'knock' back animation
[12:17:43] <Colourless> applying gravity really would just be move down till we hit something solid :-)
[12:18:19] <Colourless> moving down stairs would be reasonably similarly trivial. you'd check to see if there is a support after moving
[12:19:20] <Colourless> if not, try a walk step, and then apply gravity. if the fall is more than 8 units, nudge closer to the edge. if we are at the edge and the player wants to move forward, hurl us off it
[12:20:36] <Colourless> thinking about it, if we are running, i'm not sure if single steps should be taken. Checks would have to be done
[12:22:14] <Colourless> in such a case, if the move fails, we'd be knocked back if we couldn't step up, or hurled off the edge of a cliff always
[12:25:43] <Colourless> actor pathfinding. A* search should be fine. Path should be sucessful when a certain distance from the destination. One slight change. Standard A* uses a open and closed node list. For us we can't make every coord in the world a node and a closed list then wouldn't work. Instead just add all the nodes to the open list, once a potential step is calculated
[12:27:09] <Colourless> the nodes to the open list would be added sorted based on the guessed path distance. When adding a node to open, a check would be done to see if there was any other node at the location
[12:27:27] <Colourless> if so, keep the shortest one, and discard the longest
[12:28:26] <Colourless> in theory you would really hope that the distance travelled in all anim direction was equal. but i doubt it. sqrt(2) stuff for diagonals will probably make that a pain
[12:28:55] <Colourless> i know that for some jumps the direction in one direction isn't even the same as in the exact opposite direction
[12:29:19] <Colourless> s/jump the direction/jumps the distance/
[12:29:40] <Colourless> of course, we don't need to care about pathfinding jumps
[12:30:05] <Colourless> i'm assuming that all pathfinding will use the walk animations
[12:30:17] <Colourless> which means that stair climbing should be fine i guess
[12:33:34] <Colourless> success for the pathfind should use this criteria. Within certain distance 'n', the destination isn't blocked (probably just use a simple search that can go up and down stairs for that)
[12:35:35] <Colourless> hmm, thinking about it, a closed list may be required....
[12:36:06] <Colourless> you'd want to somehow mark nodes as being blocked...
[12:43:46] --- Cashman is now known as CashZzz
[12:43:49] <-- CashZzz has left IRC ()
[12:56:36] <-- Colourless has left IRC (kornbluth.freenode.net irc.freenode.net)
[12:56:36] <-- servus has left IRC (kornbluth.freenode.net irc.freenode.net)
[12:56:36] <-- Dark-Star has left IRC (kornbluth.freenode.net irc.freenode.net)
[12:56:36] <-- wjp|away has left IRC (kornbluth.freenode.net irc.freenode.net)
[12:56:36] <-- Kirben has left IRC (kornbluth.freenode.net irc.freenode.net)
[12:56:36] <-- DarkeSleep has left IRC (kornbluth.freenode.net irc.freenode.net)
[12:56:45] --> Colourless has joined #pentagram
[12:56:45] --> Dark-Star has joined #pentagram
[12:56:45] --> wjp|away has joined #pentagram
[12:56:45] --> DarkeSleep has joined #pentagram
[12:56:45] --> Kirben has joined #pentagram
[12:56:45] --> servus has joined #pentagram
[13:03:22] <-- Colourless has left IRC (kornbluth.freenode.net irc.freenode.net)
[13:03:22] <-- servus has left IRC (kornbluth.freenode.net irc.freenode.net)
[13:03:22] <-- wjp|away has left IRC (kornbluth.freenode.net irc.freenode.net)
[13:03:22] <-- Dark-Star has left IRC (kornbluth.freenode.net irc.freenode.net)
[13:03:22] <-- Kirben has left IRC (kornbluth.freenode.net irc.freenode.net)
[13:03:22] <-- DarkeSleep has left IRC (kornbluth.freenode.net irc.freenode.net)
[13:03:51] --> Colourless has joined #pentagram
[13:03:51] --> Dark-Star has joined #pentagram
[13:03:51] --> wjp|away has joined #pentagram
[13:03:51] --> DarkeSleep has joined #pentagram
[13:03:51] --> Kirben has joined #pentagram
[13:03:51] --> servus has joined #pentagram
[13:28:05] * DarkeSleep ponders poking around in the graphics subdir to see what bugs he can create^W^W^W^Whe can find there, since it's about the only bit of pentagram he hasn't fiddled with yet. *grin*
[13:31:58] * DarkeSleep pokes a little and eeps. He decides he doesn't want to know. He'd prefer not to have MACROErotic nightmares for the next week. *shudder*
[13:32:16] <Colourless> oh it's not that bad :-)
[13:32:24] * DarkeSleep umms... and didn't say that!
[13:32:58] <Colourless> there isn't that many macros. You just must be looking in places where you shouldn't be looking
[13:33:31] * DarkeSleep poked his nose into SoftRenderSurface, that was the problem. *grin*
[13:33:57] <Colourless> .inl no doubt
[13:34:32] <DarkeSleep> After taking a look at the .cpp, yes. *grin*
[13:35:19] <Colourless> you trying to tell me you didn't know that was expected?
[13:35:38] <DarkeSleep> The rest are a bit less... umm... interesting to those with a macro fetish, yes.
[13:36:12] <Colourless> you are ignoring Texture.h then
[13:37:12] <DarkeSleep> Well, no. My inlines of code just generally pull a large chunk of other code in, not a mass of macros. *grin* Nah. They're realively normal defines.
[13:37:59] <Colourless> mine, are funky telmpates :-)
[13:38:11] <Colourless> s/telmpates/templates/
[13:38:46] <DarkeSleep> Umm... yeah. *shudder*
[13:39:26] * DarkeSleep hides under his blanket where the Evil Macro Stuff can't get to him. *grin*
[13:40:30] <Colourless> could be worse. I could have committed the softrend code, which serves no current purpose :-)
[13:40:59] * DarkeSleep thinks he'll... err... pass on that, thanks. *grin*
[13:58:51] --- wjp|away is now known as wjp
[14:52:19] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[14:57:11] --> Kirben has joined #pentagram
[14:57:11] --- ChanServ gives channel operator status to Kirben
[15:15:46] <-- wjp has left IRC ("bbl")
[15:52:51] --- Colourless is now known as Cless|Away
[16:09:32] --> wjp has joined #pentagram
[16:09:32] --- ChanServ gives channel operator status to wjp
[16:18:08] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[16:21:14] --> Kirben has joined #pentagram
[16:21:14] --- ChanServ gives channel operator status to Kirben
[16:45:44] <wjp> ok... I got another crash in ItemSorter::AddItem
[16:45:52] <wjp> again with this==add
[16:46:13] <wjp> so I added a 'static Item* backup;' to ItemSorter.cpp
[16:46:22] <wjp> and set backup=add at the start of ItemSorter::AddItem
[16:46:41] <wjp> backup _does_ point to a valid Item, even though add is corrupt
[16:46:49] <wjp> so apparently there's some stack corruption
[16:47:08] <wjp> (interestingly it has been shape 114 twice now)
[16:50:43] <wjp> maybe I should finally upgrade gcc :-)
[16:51:06] <wjp> I don't really see anything which would cause stack corruption
[16:51:45] <wjp> hmm... although
[16:52:23] <wjp> the item's frame is way too high
[16:53:04] <wjp> ...and that's the immediate cause of the crash
[16:54:03] <wjp> let's hope gdb is the cause of the screwed up stack
[17:06:02] <wjp> ...and now it's crashing in ItemSorter::Trace on a _tower door_
[17:06:09] <wjp> there _are no_ tower doors on this map...
[17:06:34] <wjp> somehow I have the idea doors aren't working entirely correct yet :-)
[17:10:52] <Cless|Away> stack corruption in ItemSorter::AddItem doesn't make much sense
[17:11:25] <wjp> that's what I thought
[17:11:33] <wjp> unless frame is bogus
[17:11:51] <wjp> (getFrame() didn't do range checking)
[17:11:57] <wjp> it does now, though
[17:12:05] <Cless|Away> but it still shouldn't get anything from the stack though
[17:12:27] <wjp> I'm guessing gdb screwed up
[17:12:47] <Cless|Away> inline function
[17:12:51] <Cless|Away> no stack frame
[17:13:06] <Cless|Away> that 'might' cause problems
[17:13:37] <Cless|Away> if you can force off inlined functions, it might make more sense
[17:16:09] <wjp> I'm betting the problem is gone with proper range checking
[17:17:17] <Cless|Away> hmm, thinking about it, i've had the occasional crash
[17:19:23] <Cless|Away> got it to crash
[17:19:33] <Cless|Away> in ItemSorter::add obvious
[17:19:41] <Cless|Away> reason, invalid Frame
[17:19:43] <wjp> item 114, frame 69? :-)
[17:19:54] <wjp> s/item/shape/
[17:20:04] <Cless|Away> 114, 42
[17:20:11] <wjp> close enough :-)
[17:20:21] <Cless|Away> for me, this and add were correct
[17:20:35] <Cless|Away> crashed here
[17:20:36] <Cless|Away> si->sx = si->sxbot - frame->xoff; // Left
[17:20:39] <wjp> same here
[17:21:11] <Cless|Away> for me, ShapeFrame *frame = 1
[17:22:04] <Cless|Away> so, even if i checked for null, it still would have crashed
[17:22:20] <wjp> I added a range check to getFrame
[17:23:15] <Cless|Away> has flag 0x2000 set
[17:23:25] <wjp> which is that?
[17:23:32] <Cless|Away> fastarea :-)
[17:23:43] <wjp> not really surprising, then :-)
[17:24:17] <Cless|Away> xyz = 13055, 9215, 48
[17:24:42] <Cless|Away> q = 768
[17:26:45] <Cless|Away> that's the left door entering mordea's throne room
[17:27:14] <Cless|Away> when opened
[17:27:23] <Cless|Away> q is 512 when closed, and 768 when open
[17:29:06] <wjp> bbl, dinner
[17:33:57] <Cless|Away> oddly enough it's only that with a problem
[17:34:22] <Cless|Away> it crashes after the door leaves the fast area, and comes back into it
[17:37:16] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[17:42:17] <Cless|Away> really strange stuff happens to those doors when they reenter the fast area
[17:42:58] <Cless|Away> i added code that would allow me to flush the fast area with a key press and the does move
[17:45:09] <Cless|Away> s/does/doors/
[17:47:28] <Cless|Away> doors though don't have fast area funcs
[17:50:49] <wjp> how weird
[17:51:02] <wjp> none of the door shapes?
[17:52:17] <Cless|Away> nope
[17:54:29] <Cless|Away> actually some do
[17:54:33] <Cless|Away> LOCKDOOR::enterFastArea
[17:54:47] <Cless|Away> it;s an egg
[17:54:57] <wjp> ah
[17:55:05] <wjp> locks doors when you get in range?
[17:55:08] <Cless|Away> the door that dies has a egg beside it
[17:55:39] <Cless|Away> it spawns 0044:08B4
[17:58:49] <Cless|Away> from within a loopscript it look
[17:58:50] <Cless|Away> s
[18:05:50] <Cless|Away> not that it matters
[18:06:56] * wjp finally made Makefile.mingw use objects.mk
[18:11:29] <wjp> middle-mouse-hurl is quite convenient to get the key from under the whatever-it-is in Mordea's room :-)
[18:11:37] <wjp> cushion, apparently
[18:23:07] <Cless|Away> i've no idea what's going on
[18:30:27] <wjp> in my case, the wrong frame is being caused by the getFrame call at DOOR_NS::393
[18:30:35] <wjp> it returns 0x32, which is out of bounds
[18:31:05] * wjp looks where that is set
[18:36:52] <Cless|Away> as i said, i have no idea what's going on :-)
[18:37:14] <Cless|Away> anyway. i
[18:37:20] <Cless|Away> ve got to go now
[18:37:23] <Cless|Away> cya
[18:37:23] <-- Cless|Away has left IRC ("casts invisibility")
[18:37:54] <wjp> ...caused by DOOR_NS::388 getFrame() returning 9
[18:38:23] <wjp> which is _not_ invalid
[18:41:00] <wjp> hm, no... wrong pid :-)
[18:41:51] <wjp> ...or maybe not... hmmm
[19:42:11] <-- DarkeSleep has left IRC (kornbluth.freenode.net irc.freenode.net)
[19:44:55] --> DarkeSleep has joined #pentagram
[20:01:32] <wjp> well... that was fun...
[20:01:45] <wjp> I just manually 'decompiled' DOOR_NS::0340
[20:36:26] <wjp> interesting function :-)
[20:37:48] <wjp> ok, the problem is not in that one :-)
[20:38:01] <wjp> the 9 it gets as input is wrong
[20:46:09] * wjp aaahhhs
[20:46:26] <wjp> somehow the 'move door' function is getting called on an opening door
[20:58:03] <servus> Ahhh, yes! That is fantastic! (so you don't feel like you're talking to yourself:)
[20:58:17] <wjp> heh, thanks :-)
[20:58:24] * wjp feels like less of an idiot now :-)
[21:00:27] <servus> i haven't programmed at all lately :-(... too drained from the rest of my busy (ho ho ho) life, i guess
[21:01:16] <wjp> synchronization issues... *sigh* *kicks door*
[21:09:04] <servus> *downloads pentagram:)*
[21:17:14] <servus> hmm their CVS server is on the fritz, it'd seem
[21:17:40] <wjp> http://pentagram.sourceforge.net/snapshots/
[21:17:52] <wjp> the zip is a source snapshot
[21:21:07] <servus> neato, are you going to leave it so zoomed-out? :-)
[21:21:21] <wjp> nah
[21:21:48] <wjp> this makes it easier to playtest though
[21:41:46] <servus> is music/sfx supposed to work?
[21:41:50] <wjp> no
[21:42:24] <wjp> not implemented at all
[22:29:19] <wjp> unbelievable
[22:29:28] <wjp> there are _TWO_ LOCKDOOR eggs at these double doors
[22:29:53] <wjp> and that's one too many...
[22:35:07] * wjp hmmms
[22:35:43] <wjp> if I make createItem fail when trying to create an item with an invalid frame, things Kind-Of Work(tm)
[22:36:11] <wjp> specifically, the doors flicker like crazy while trying to close, but they do close properly
[22:36:34] <wjp> (and since the closing should happen while they're still off the screen, this might be acceptable)
[22:42:58] <servus> nah
[22:43:08] <servus> if you unlock one tower-door, the other stays locked. i remember that
[22:43:17] <wjp> this is something different
[22:43:29] <wjp> this closes doors when you get out of range
[22:44:25] <wjp> and maybe relocks them too; didn't look at that
[22:44:43] <servus> i can check the original game, i suppose
[22:44:51] <wjp> for the record: a locked door seems to be indicated by quality&0x400 = true
[22:45:01] <wjp> check what?
[22:51:52] <wjp> I have to go; I'll read the logs tomorrow
[22:51:52] <wjp> night
[22:51:54] <-- wjp has left IRC ("Zzzz...")
[23:20:26] <-- Dark-Star has left IRC ()
[23:35:04] <servus> ooh, neat hack mode in u8:)