View Issue Details

IDProjectCategoryView StatusLast Update
0003011The Dark ModPhysicspublic07.02.2012 17:40
Reportertels Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 1.07 
Target VersionTDM 1.08Fixed in VersionTDM 1.08 
Summary0003011: Frobbing an item does not activate physics for touching contacts
DescriptionFrob a candle holder + moveable candlestick on top (two sep. entities) and the candle will float.

The same for stacked crates, plates etc.
Additional InformationWhen a frobbed item is removed from the world, all the items it was in contact with should get their physcis activated, so they fall down properly.

This avoids the mapper having to target one moveable to the other just to get the effect working.
TagsNo tags attached.

Activities

grayman

grayman

05.02.2012 21:07

administrator   ~0004303

Last edited: 05.02.2012 21:14

View 2 revisions

This type of interaction works correctly in some cases.

I frobbed a table with a candlestick sitting on it and the candlestick fell over right away.

Yesterday I found a stack of gears and frobbed one out of the middle of the stack and the others dropped down.

Now, I do remember frobbing a plate out of a stack of plates a long time ago, and the stack didn't change. In fact, I frobbed the plates in order, from bottom to top, tossing the frobbed ones aside, finally leaving a single hovering plate.

So perhaps it depends on the moveable, and the moveable the moveable is sitting on.

Edit: I just checked a moveable candle sitting on top of a loot candlestick. I frobbed the candlestick and the candle remained, hovering.

This case is probably handled differently than a moveable sitting on a moveable. The candlestick was removed from the game, but either it didn't notify the candle that it was gone, or the candle didn't pick up on the fact that the candlestick was no longer there (it's not thinking when this happens, so it won't detect the change).

tels

tels

05.02.2012 21:16

reporter   ~0004304

The difference might be between frobbing a moveable, and a non-moveable (which some loot entities might be?)
grayman

grayman

06.02.2012 17:53

administrator   ~0004305

Last edited: 06.02.2012 17:55

View 3 revisions

Frobbing an item (moveable or not) that goes into inventory doesn't invoke any physics check for objects sitting on it.

The fix is to add a physics check for each suspended object. Of course, if that object isn't a moveable, it will continue to hover. Nothing I can do about that.

This problem is now fixed. Take the gold candlestick and its moveable candle falls. Take the bottom moveable gold plate from a stack of plates and the stack reacts. Prop a moveable scepter on top of a stack of non-moveable coins, take the coins, and the scepter drops. Prop a gold dagger (not moveable) on top of a stack of coins, take the coins, and the dagger doesn't drop.

Will commit the fix in a while.

grayman

grayman

06.02.2012 19:09

administrator   ~0004306

Moveable and non-moveable items, when frobbed into inventory, need to invoke a check above them to see if any supported moveable needs to be told to move.

rev. 5248:

Player.cpp
Player.h
grayman

grayman

07.02.2012 00:52

administrator   ~0004308

Tels suggested moving the change to the entity class so it’s generally available.

rev. 5251:

Player.cpp
Player.h
Entity.cpp
Entity.h
grayman

grayman

07.02.2012 17:40

administrator   ~0004310

Added script access.

rev. 5255:

Entity.cpp
Entity.h

rev. 12593:

tdm_events.script

Issue History

Date Modified Username Field Change
05.02.2012 10:29 tels New Issue
05.02.2012 21:07 grayman Note Added: 0004303
05.02.2012 21:14 grayman Note Edited: 0004303 View Revisions
05.02.2012 21:16 tels Note Added: 0004304
06.02.2012 06:07 grayman Assigned To => grayman
06.02.2012 06:07 grayman Status new => assigned
06.02.2012 17:53 grayman Note Added: 0004305
06.02.2012 17:54 grayman Note Edited: 0004305 View Revisions
06.02.2012 17:55 grayman Note Edited: 0004305 View Revisions
06.02.2012 19:09 grayman Note Added: 0004306
06.02.2012 19:09 grayman Status assigned => resolved
06.02.2012 19:09 grayman Resolution open => fixed
06.02.2012 19:09 grayman Product Version => TDM 1.07
06.02.2012 19:09 grayman Fixed in Version => TDM 1.08
06.02.2012 19:09 grayman Target Version => TDM 1.08
07.02.2012 00:52 grayman Note Added: 0004308
07.02.2012 17:40 grayman Note Added: 0004310