View Issue Details

IDProjectCategoryView StatusLast Update
0003704The Dark ModCodingpublic10.03.2019 20:27
Reportergrayman Assigned ToSteveL  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.02 
Target VersionTDM 2.04Fixed in VersionTDM 2.04 
Summary0003704: Can pickpocket something when near origin, regardless of where the something is in the map
DescriptionI noticed this while testing the new pickpocket reaction in AI.

If I give an AI a key on his belt, and go to the map's origin, somewhere around [50,-50,0] I can frob the key w/o being anywhere near it. Across the map, the key disappears from the AI's belt and he reacts to having it stolen.

The key has a frob_distance of 50 on it, so that might be part of the problem. I've built a test map where I'm 300 from the key when I frob it.
TagsNo tags attached.

Relationships

related to 0005009 closedstgatilov Vine patches spawning in mid-air 

Activities

grayman

grayman

30.03.2014 04:56

viewer   ~0006484

Added a second guard with a key on his belt.

I can stand at the origin, and with two frobs pluck both keys off the belts 300 units away.

It's as if the keys are sitting at the origin, but when I check the origins of the keys, they're out on the guards' belts.

Something odd is going on with the trace function. It thinks the keys are only 39 units away, w/in frob distance.
grayman

grayman

03.04.2014 16:26

viewer   ~0006488

Last edited: 03.04.2014 16:27

At first, I corrected this by checking the abs bounds on the entity, instead of the abs bounds kept in the cliplink list (the following code from idClip::ClipModelsTouchingBounds_r).

// if the bounds really do overlap
if ( check->absBounds[0][0] > parms.bounds[1][0] ||
    check->absBounds[1][0] < parms.bounds[0][0] ||
    check->absBounds[0][1] > parms.bounds[1][1] ||
    check->absBounds[1][1] < parms.bounds[0][1] ||
    check->absBounds[0][2] > parms.bounds[1][2] ||
    check->absBounds[1][2] < parms.bounds[0][2] )
{
    continue;
}

This corrected the key problem, but it caused a problem of not being able to hit an AI's head with a broadhead; the arrow sailed right through. Putting the code back to what it was corrected that problem.

So--if there's a fix at all, and there might not be--it has to lie in the link/unlink code.

SteveL

SteveL

29.06.2014 09:43

reporter   ~0006688

Mysterious that frobbing works from two different places. There must be two checks happening, either explicitly or more likely as a side effect. How did you discover the nonsolid head effect? And I wonder if an arrow would be stopped a little way above the origin in that experiment? Just idle speculation atm but I find this really intriguing. Working out how the clip links work is on my to-do list too. I plan to have another go at those physics issues that were too hard for me in April once I get back to the uk next week. I might have more chance of success now I'm a bit more acclimatized to the game code.
grayman

grayman

29.06.2014 13:54

viewer  

originfrob.map (9,368 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
"editor_drLastCameraPos" "32.1694 -17.1933 91.329"
"editor_drLastCameraAngle" "-5.4 4.8 0"
"editor_drMapPos1" "1738.55 1171.14 -520.531"
"editor_drMapAngle1" "14.7001 87.8977 0"
"editor_drMapPos2" "414.798 255.441 -264.933"
"editor_drMapAngle2" "2.10002 84.5976 0"
"editor_drMapPos3" "-749.97 -1606.21 -470.066"
"editor_drMapAngle3" "-3.29998 6.59757 0"
"editor_drMapPos4" "1014.05 -953.679 -556.857"
"editor_drMapAngle4" "-10.2 355.498 0"
"editor_drMapPos5" "987.599 3513.79 -319.877"
"editor_drMapAngle5" "-61.1999 172.198 0"
"editor_drMapPos6" "-1032.5 -2840 739.5"
"editor_drMapAngle6" "-77.0999 175.798 0"
"editor_drMapPos7" "952.822 285.005 1366.04"
"editor_drMapAngle7" "-74.8 149.373 0"
"editor_drMapPos8" "976 424 320"
"editor_drMapAngle8" "-3 15.3467 0"
"editor_drMapPos9" "409.146 547.464 392.83"
"editor_drMapAngle9" "-16.8 284.947 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -136 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 1 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 1 0 0 -448 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 -1 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 -1 128 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.00390625 0 255.96875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 1 0 -72 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 1 0 0 -448 ) ( ( 0.00390625 0 255.96875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 -1 0 ) ( ( 0.00390625 0 255.96875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 -64 ) ( ( 0.00390625 0 0.03125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 -1 0 64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 1 0 -64 ) ( ( 0.00390625 0 0.03125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 1 0 0 -456 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 -1 0 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 -1 0 -64 ) ( ( 0.00390625 0 255.96875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 448 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 -1 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 -1 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 1 0 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 1 0 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.00390625 0 0.03125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 1 0 0 -448 ) ( ( 0.00390625 0 0.03125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 -1 0 ) ( ( 0.00390625 0 0.03125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 -1 0 -72 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 -64 ) ( ( 0.00390625 0 255.96875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 1 0 64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -128 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0.5625 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 1 0 -64 ) ( ( 0.00390625 0 255.71875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 -1 0 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.4375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 -1 0 -64 ) ( ( 0.00390625 0 0.28125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 -72 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 1 0 0 64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
}
}
// primitive 6
{
brushDef3
{
( 0 0 -1 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 -1 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 1 0 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 7
{
brushDef3
{
( 0 1 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 1 0 0 -448 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 -1 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 -1 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 1 0 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 8
{
brushDef3
{
( 0 1 0 -64 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 127.9375 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 -1 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( 0 0 1 0 ) ( ( 0.00390625 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/carpet/runners/geometric01_red" 0 0 0
( -1 0 0 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 9
{
brushDef3
{
( 0 0 -1 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.00390625 0 ) ) "textures/darkmod/metal/detailed/bars_rivets_steel" 0 0 0
( 0 0 1 0 ) ( ( 0.00390625 0 0 ) ( 0 0.00390625 0 ) ) "textures/darkmod/metal/detailed/bars_rivets_steel" 0 0 0
( -1 0 0 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.00390625 0 ) ) "textures/darkmod/metal/detailed/bars_rivets_steel" 0 0 0
( 1 0 0 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.00390625 0 ) ) "textures/darkmod/metal/detailed/bars_rivets_steel" 0 0 0
( 0 1 0 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.00390625 0 ) ) "textures/darkmod/metal/detailed/bars_rivets_steel" 0 0 0
( 0 -1 0 -8 ) ( ( 0.00390625 0 0 ) ( 0 0.00390625 0 ) ) "textures/darkmod/metal/detailed/bars_rivets_steel" 0 0 0
}
}
}
// entity 1
{
"classname" "atdm:ai_citywatch"
"name" "Bob"
"def_attach6" "atdm:prop_key_padlock"
"def_vocal_set" "atdm:ai_vocal_set_simpleton_guard_01"
"name_attach6" "KeyPadlock4"
"origin" "321.44 32.62 0.055441"
"pos_attach6" "belt_back_right"
"set inv_name on KeyPadlock4" "Padlock Key"
"set name on KeyPadlock4" "KeyPadlock4"
"team" "0"
}
// entity 2
{
"classname" "atdm:ambient_world"
"name" "ambient_world"
"_color" "0.08 0.08 0.08"
"light_center" "0 0 0"
"light_radius" "320 320 320"
"origin" "192 0 64"
}
// entity 3
{
"classname" "light"
"name" "light_1"
"light_center" "0 0 0"
"light_radius" "320 320 320"
"origin" "208 40 112"
}
// entity 4
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "1"
"origin" "-40 0 0"
}
// entity 5
{
"classname" "atdm:ai_citywatch"
"name" "Charlie"
"def_attach6" "atdm:prop_lootbag"
"def_vocal_set" "atdm:ai_vocal_set_simpleton_guard_01"
"origin" "321.44 -39.38 0.055441"
"pos_attach6" "belt_back_right"
"team" "0"
}
// entity 6
{
"classname" "atdm:ai_citywatch"
"name" "Doug"
"def_attach6" "atdm:prop_key_simple_brass"
"def_vocal_set" "atdm:ai_vocal_set_simpleton_guard_01"
"name_attach6" "Key1"
"origin" "409.44 0.62 0.055441"
"pos_attach6" "belt_back_right"
"set inv_name on Key1" "Key"
"set name on Key1" "Key1"
"team" "0"
}
originfrob.map (9,368 bytes)   
grayman

grayman

29.06.2014 14:03

viewer   ~0006689

I attached a test map that shows the problem. After starting, try frobbing in the air above or near the square patch in the floor. You should be able to frob the attachments off the guards.

I noticed the nonsolid head when I was conducting tests on the pickpocket reaction.

I think the problem comes from an attachment being spawned momentarily near the origin, then moved as an attachment to the AI. The cliplink list captures both clipmodel boundaries, then later uses the wrong one when testing what's in the path of the player's LOS during a frob.

Correcting for an attachment clobbered collision detection on an AI's attached head. Perhaps some special-case detection also needs to be added.

It's unclear to me why there would be more than one clipmodel for anything.
SteveL

SteveL

30.06.2014 07:47

reporter   ~0006691

Thanks. I'll be able to play with it Friday. I'm wondering whether g_showentityinfo will show them there too. Inventory items leave their world bounding boxes behind like that, but that's different because they've not been moved, they've just been hidden. But it makes me wonder whether it makes a difference whether the key is positioned in DR or def attached. A key positioned in DR has no business at the origin.
SteveL

SteveL

12.07.2014 22:29

reporter   ~0006714

Yup, the keys are frobable from the origin but not, apparently, the coin purse.
g_showentityinfo does *not* show bounding boxes at the origin.
Keys positioned in DR don't have the problem, as suspected.

Why keys and not a coin purse? Hmmm.

I got a definite pickpocket reaction from one of my snatches-from-the-origin, delayed by a few seconds.
SteveL

SteveL

13.07.2014 11:42

reporter   ~0006715

Aha! It's not the key being hit by the trace at the origin, it's the key's frobbox. Keys do have two distinct collision models: their own, plus their frobbox. The key's own cm is correctly positioned when the map starts, but the frobbox cm is sitting at the origin.

The reason you can't frob the loot purse from the origin is that it doesn't have a frobbox spawnarg.
Obsttorte

Obsttorte

31.07.2014 20:07

developer   ~0006818

For the frobbox an additional clipmodel is used, but only if frobbox_size or frobbox_mins _maxs respectively are set. The member pointer is m_frobbox in idEntity. To me it seems that when the entities position get's updated, the frobbox doesn't get moved, too.

Maybe this have been overlooked back when the frobbing was implemented.

I'm currently trying to find the piece of code handling the movement.
SteveL

SteveL

01.08.2014 07:09

reporter   ~0006819

I think you're right. There might simply be no code at all that updates the frobbox tracemodel. But there must be some code somewhere that updates the other tracemodel, the one for the object's own clipmodel. If you can find that code, perhaps we can make it happen for the frobbox too.
SteveL

SteveL

21.01.2015 20:20

reporter   ~0007366

I'm assigning this to myself because I diagnosed it last summer and will eventually get round to fixing it, but if anyone wants to fix it sooner please just assign the issue to yourself!
tels

tels

25.01.2015 13:10

reporter   ~0007390

Here is a bit more info:

For idMoveableItem, the frobbox is stored in trigger and this is updated on each Think:

/*
================
idMoveableItem::Think
================
*/
void idMoveableItem::Think( void ) {

    RunPhysics();

    if ( thinkFlags & TH_PHYSICS ) {
        // update trigger position
        trigger->Link( gameLocal.clip, this, 0, GetPhysics()->GetOrigin(), mat3_identity );
    }

idEntity attempts the same. Both have the same subproblem, temporary hidden objects will use 0,0,0 as origin. In this case the update might be needed to be skipped:

    if ( (thinkFlags & TH_PHYSICS) && m_FrobBox )
    {
        // update trigger position
        // TODO: Tels: What about hidden entities, these would use (0,0,0) as origin here?
        m_FrobBox->Link( gameLocal.clip, this, 0, GetPhysics()->GetOrigin(), GetPhysics()->GetAxis() );
    }


The frobbable keys should be idMoveableItem, however.

The code for updating the frobbox might thus not be correct. One suspicious difference is that it doesn't use the "axis" to update trigger->Link() (either it must use the axis to construct the tracemodel, and update it, or the identity, but once so and once so?)

The other problem might be that the key is attached, and thus the bindmaster's origin might need to be taken into account.

Hope this helps to track this down.
SteveL

SteveL

08.05.2015 17:25

reporter   ~0007507

Ack, the error is obvious. I just spotted this again while looking for another issue in my list. The error is in the code you pasted above: GetPhysics()->GetOrigin(). GetOrigin() for bind objects returns the origin *relative to the bind point*, which is 0 0 0 unless the mapper does something special. The clip link code will need the *world* origin.
SteveL

SteveL

08.05.2015 17:31

reporter   ~0007508

No, I'm wrong. That'll teach me to check the code before posting. GetPhysics()->GetOrigin() apparently returns world coordinates already. It's the *script event* getOrigin() that returns the local coordinate.
SteveL

SteveL

16.05.2015 00:57

reporter   ~0007512

The keys aren't idMoveables after all, they are idSpawnableEntity. That's just an empty wrapper for idEntity.

I added a walking guard with a bound key (placed in DR and bound, not def attached) to the test map, and he wanders around leaving the frob box midair where he started. I can grab the key using that frob box too. This matches a report I remember from RJFerret last year about scrolls bound to AI being frobable from where they spawned as well as from the scroll itself. It seems the frob boxes of bound items are not updated at all, so def_attached items leave their frob boxes at the map origin, and entities placed in DR leave them where they spawn.

idEntity::Think for bound items doesn't call any physics code directly. Physics updates for bound items are handled by the bind master's idEntity::RunPhysics. It doesn't do frob boxes, but it needs to.
SteveL

SteveL

17.05.2015 20:01

reporter   ~0007516

Forum opinion broadly in favour of removing the frob boxes instead of making them move with their owner. Keys are easy enough to pickpocket already.

idEntity::PostBind seems the right place for the fix. It gets called after both def_attachments and DR binds. An entity can destroy its frob box if it finds itself attached to an animated entity.

Frob boxes will still be left behind when a frob-boxed entity is bound to something else that moves, e.g. an idMover. But broadening the fix to include those cases would risk losing frob boxes where they are needed in chests etc.
SteveL

SteveL

18.05.2015 17:50

reporter   ~0007517

at rev 6499

game/entity.cpp
SteveL

SteveL

07.09.2015 13:18

reporter   ~0007756

After blackjacking discussion in the forum today, reopened to check that the BJ mechanism isn't affected by this change in 2.04.
SteveL

SteveL

09.09.2015 20:19

reporter   ~0007766

It's fine, the KO logic doesn't use a frob box or anything like it. Hits to standard body trace models are used.

Issue History

Date Modified Username Field Change
30.03.2014 02:57 grayman New Issue
30.03.2014 02:57 grayman Status new => assigned
30.03.2014 02:57 grayman Assigned To => grayman
30.03.2014 04:56 grayman Note Added: 0006484
03.04.2014 16:26 grayman Note Added: 0006488
03.04.2014 16:26 grayman Target Version TDM 2.02 =>
03.04.2014 16:27 grayman Note Edited: 0006488
28.06.2014 18:17 grayman Assigned To grayman =>
28.06.2014 18:18 grayman Assigned To => grayman
28.06.2014 18:18 grayman Status assigned => confirmed
28.06.2014 18:18 grayman Assigned To grayman =>
29.06.2014 09:43 SteveL Note Added: 0006688
29.06.2014 13:54 grayman File Added: originfrob.map
29.06.2014 14:03 grayman Note Added: 0006689
30.06.2014 07:47 SteveL Note Added: 0006691
12.07.2014 22:29 SteveL Note Added: 0006714
13.07.2014 11:42 SteveL Note Added: 0006715
31.07.2014 20:07 Obsttorte Note Added: 0006818
01.08.2014 07:09 SteveL Note Added: 0006819
21.01.2015 20:19 SteveL Assigned To => SteveL
21.01.2015 20:19 SteveL Status confirmed => assigned
21.01.2015 20:20 SteveL Note Added: 0007366
25.01.2015 13:10 tels Note Added: 0007390
08.05.2015 17:25 SteveL Note Added: 0007507
08.05.2015 17:31 SteveL Note Added: 0007508
16.05.2015 00:57 SteveL Note Added: 0007512
17.05.2015 20:01 SteveL Note Added: 0007516
18.05.2015 17:50 SteveL Note Added: 0007517
18.05.2015 17:51 SteveL Status assigned => resolved
18.05.2015 17:51 SteveL Resolution open => fixed
18.05.2015 17:51 SteveL Fixed in Version => TDM 2.04
18.05.2015 17:51 SteveL Target Version => TDM 2.04
07.09.2015 13:18 SteveL Note Added: 0007756
07.09.2015 13:18 SteveL Status resolved => assigned
09.09.2015 20:19 SteveL Note Added: 0007766
09.09.2015 20:19 SteveL Status assigned => resolved
10.03.2019 20:27 VanishedOne Relationship added related to 0005009