Jump to content
Eternal Lands Official Forums
Wytter

Cal3D Bugs

Recommended Posts

This thread is for bug reports for Cal3D only!

 

In the new character interface, when you try rotating the character (using PgUp/Dn) it is not animated any further than one of it's legs being lifted from the ground.

 

When rotating the character in the normal mode, after pressing PgUp/Dn for a little over a second the character will not move but continue rotating, then start moving and rotating again.

 

Glowing weapons does not glow.

Edited by Wytter

Share this post


Link to post
Share on other sites

I updated from cvs and was able to build the client. It appears I am doing something wrong with all the objects, models, textures, etc. I tried using the update102test2. It is not complete. The client segfaults. I tried putting things together and it ran. Except, my character was invisible.

 

 

Not sure what to do here.

Edited by etlar

Share this post


Link to post
Share on other sites

Try creating symbolic links between

Animations and animations

Meshes and meshes

 

Appears to be some mistakes made by windows users when making the actor def files...

Edited by Wytter

Share this post


Link to post
Share on other sites
Try creating symbolic links between

Animations and animations

Meshes and meshes

 

Appears to be some mistakes made by windows users when making the actor def files...

177281[/snapback]

 

I have the client running now. My problem was it wanted actor_defs in /usr/local/games/el and I have everthing in the build directory. ini fixed this. The PgUp/PgDn keys on the numpad do nothing. The others still zoom. Do I have the right thing here? I do see a difference in walking, sitting, green target, and use for doors though.

 

Added: I also love the new knowledge layout. much better.

Edited by etlar

Share this post


Link to post
Share on other sites

I don't know if it's related, but if you run the client with -dir /path/to/EL/dir, it segfaults on some cal3d functions. Backtrace:

#0 0xb7c47981 in CalCoreSkeleton::scale ()

from /home/vegar/el-test/cal3d-0.10.0/src/cal3d/.libs/libcal3d.so.11

#1 0x080ac668 in CalCoreSkeleton_Scale (self=0x0, factor=0)

at cal3d_wrapper.cpp:534

#2 0x0805b36f in parse_actor_script (cfg=0x825d04c) at actor_scripts.c:1954

#3 0x0805b3ca in parse_actor_defs (node=0x0) at actor_scripts.c:1970

#4 0x0805b3f2 in parse_actor_defs (node=0x0) at actor_scripts.c:1976

#5 0x0805b525 in read_actor_defs (dir=0x0, index=0x0) at actor_scripts.c:2008

#6 0x0805b59f in init_actor_defs () at actor_scripts.c:2029

#7 0x08079736 in init_stuff () at init.c:520

#8 0x08081714 in main (argc=0, argv=0x0) at main.c:145

Share this post


Link to post
Share on other sites

Bad object: ./3dobjects/structures/house9.e3d . Two or more materials with the same texture name!
Bad object: ./3dobjects/structures/house9.e3d . Two or more materials with the same texture name!

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 16342)]
0x08064288 in remove_bag (which_bag=6) at bags.c:118
118             sector=SECTOR_GET(objects_list[bag_list[which_bag].obj_3d_id]->x_pos, objects_list[bag_list[which_bag].obj_3d_id]->y_pos);
(gdb) backtrace
#0  0x08064288 in remove_bag (which_bag=6) at bags.c:118
#1  0x0808c539 in process_message_from_server (in_data=0x95b9340 "\035\002", data_lenght=6) at multiplayer.c:776
#2  0x0808ce48 in process_data_from_server () at multiplayer.c:1024
#3  0x080882e7 in start_rendering () at main.c:54
#4  0x0808849a in main (argc=715827883, argv=0x2aaaaaab) at main.c:147

 

P.S. Not reproducable when all data files are in place.

Edited by Lachesis

Share this post


Link to post
Share on other sites

I don't know if this has to do with any of the problems, but when I just checkedout the CVS, I get the old def files, not the ones for Cal3D. The code is updated for Cal3D, but the def files still reference the old md2 format. Where did you guys get the new defs and binary files(animations,meshes,skeletons)?

Edited by mikeman

Share this post


Link to post
Share on other sites
I don't know if this has to do with any of the problems, but when I just checkedout the CVS, I get the old def files, not the ones for Cal3D. The code is updated for Cal3D, but the def files still reference the old md2 format. Where did you guys get the new defs and binary files(animations,meshes,skeletons)?

Here:

http://el.tfm.ro/update_1.0.2-test2.tar.bz2

 

I'll upload the new .def...

Edited by Wytter

Share this post


Link to post
Share on other sites

Could you please post just the bugs when you got the client up and running? Bugs and compile problems are 2 different things. There is a thread on how to build the client in the Programming forum.

Share this post


Link to post
Share on other sites

Dead things are nto staying falled on the ground if you walk out of the range in which it is sent to client...

 

e.g. I kill 2 gargs - all looks ok...

 

bug_1.jpg

 

I walk away from them so that they are outside the area server sends to you...than I come back...they are still dead but standing now...

 

cal_bug_2.jpg

 

Edit: same tihng happens for wolf, bears

 

Edit2: same thing for snakes and deer in todays compile (well minus the <CAL> in name since that was taken out)

 

~C

Edited by Cajs

Share this post


Link to post
Share on other sites

I get that too. Mainly when killing gargs in the diamond mines. They seem to die standing with no health meter :)

 

The other problem I am having is falling through the ground. An easy example is the pond near beam.

Edited by Nintenduh

Share this post


Link to post
Share on other sites

Nintenduh, That's because you're using a diff. map than what's on the server - it has a different heightmap, hence you'll appear as if you're in a different Z location.

Share this post


Link to post
Share on other sites

I tried the Client from cvs today, too (Gentoo Linux, thx for the ebuild :-) )

 

For now there are 2 bugs I noticed, which seem to be related to Cal3d:

1) The reflection is wrong sometimes (look at the face)

reflection1.png

reflection2.png

 

It s in the garg cave in TG. I mention the place because it only happens, if I step to deep into the water.

 

2) Sometimes I stay in this position, when I click on the bag the moster dropped to fast (reproducible).

position.png

 

EDIT: Perhaps this is an Cal3d-issue, too:

http://www.eternal-lands.com/forum/index.p...pic=12458&st=40

Edited by Theben

Share this post


Link to post
Share on other sites

So, to reiterate, the bugs are:

 

1)Rotating the chars

2)Dead animations are wrong

3)Glowing weapons-actually that's just a feature I forgot to include

4)Reflections-actually, I don't think it's a Cal3D problem because it would happen all the time, but I could be wrong.

 

The rest(like falling in holes in maps) is most definately not Cal3D issues. If it was just appearance then it might be(I could just do something wrong with the matrices when I'm rendering chars), but you're saying that you couldn't get out of the hole, which means the server actually thinks it's a hole there.

 

I'm working on them, but I've been busy with this "how to build it with Dev-C" and the new random idles thing, so if anyone wants to poke around the code and fix it, go ahead. Most of them are pretty minor issues, so here are some pointers:

 

1)Rotating: I'm not sure about this, maybe just play with the animation speed?

2)Dead: I definately know what this is. When the actors are added in the server they are in default pose(immediately after, they start idle or other animations). When a char dies it executes the "die" anim that stops in the last frame. But when the dead actor is removed, and added again, it starts from the beginning. In the actor_add_from_server() func, probably just check if he's dead and if he is, start a "die" anim, proceed it straight to the end (via CalModel_Update()) and let it play.

3)Glowing: Just set the material parameters when rendering a weapon.

4)Reflections: Don't know about this.

Edited by mikeman

Share this post


Link to post
Share on other sites

When I was mining diamonds my char stood up (he was sitting and mining) and did some weird jet lee thing :P Looks like it freezes the begining of the fight animation. When I walked around and then stand still it happens again. If I leave the ~orF1 console it goes away. Hasn't started doing it again though.

 

cal3dminebug.png

Share this post


Link to post
Share on other sites

Don't forget about the special gargoyle idles too that I explained :P

 

Also..I don't know if any others noticed this, but when I am fighting, I do not always face what I am fighting. Many times my char and/or the monster/animal is farther back then normal, or turned to the side so they are not facing each other properly.

Share this post


Link to post
Share on other sites
Also..I don't know if any others noticed this, but when I am fighting, I do not always face what I am fighting. Many times my char and/or the monster/animal is farther back then normal, or turned to the side so they are not facing each other properly.

178602[/snapback]

 

When I was fighting a bear it looked like he was standing off to my right a bit. Makes it easy to click his death bag but looked kinda funny :P

Share this post


Link to post
Share on other sites

oh another thing...when that happened with the offset creatures, when they would die, i would walk to pick up the bag..it's contents would open up and i could take them, but my char was NOT on the bag! The bag was off to the side a few spaces.

Share this post


Link to post
Share on other sites

I was standing and harvesting vegies on IP and sitting on console. When I switch from the console to 3D mode I so myself do fighting moves then turn and step away from the direction I was fighting and fall into a hole. The entire time I was gaining harv exp. A while later I resync and appeared in the proper place. I haven't had problems like that with the normal 1.0.1 client.

Share this post


Link to post
Share on other sites
I was standing and harvesting vegies on IP and sitting on console. When I switch from the console to 3D mode I so myself do fighting moves then turn and step away from the direction I was fighting and fall into a hole. The entire time I was gaining harv exp. A while later I resync and appeared in the proper place. I haven't had problems like that with the normal 1.0.1 client.

178814[/snapback]

I just grabbed the latest CVS and going to see if it ever repeats.

Share this post


Link to post
Share on other sites

the random fighting pose isn't just players... grim(DP storage for those who don't know) was occaionally taking hits (animation, not damage) while I was working there

 

I've also been getting the holes as well, ocassionally getting stuck, usually just tunneling (walk a few meters underground and then pop up again)

I copied some old ELMs over the ones in the test update, but it is dp, votd, and especially IP I'm getting the probs on

Edited by ttlanhil

Share this post


Link to post
Share on other sites

After playing for a while, and adding/deleting a lot of actors (using the #invasion command in KF) I seg-faulted. Here's what I've debugged so far:

 

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 46912537458688 (LWP 14687)]
0x00002aaaab560bb0 in CalAnimation::getCoreAnimation () from /usr/lib/libcal3d.so.11
(gdb) backtrace
#0  0x00002aaaab560bb0 in CalAnimation::getCoreAnimation () from /usr/lib/libcal3d.so.11
#1  0x00002aaaab598e9a in CalMixer::updateSkeleton () from /usr/lib/libcal3d.so.11
#2  0x00002aaaab59ab99 in CalModel::update () from /usr/lib/libcal3d.so.11
#3  0x0000000000424754 in display_game_handler (win=0x4f8a940) at gamewin.c:604
#4  0x000000000041de5e in draw_window (win=0x4f8a940) at elwindows.c:981
#5  0x000000000041e22e in display_window (win_id=0) at elwindows.c:1111
#6  0x000000000041c517 in display_windows (level=1) at elwindows.c:52
#7  0x000000000041a6c3 in draw_scene () at draw_scene.c:87
#8  0x0000000000433c4a in start_rendering () at main.c:83
#9  0x0000000000433e5d in main (argc=0, argv=0xbd6456a4) at main.c:181

And a more detailed:
(gdb) bt full
#0  0x00002aaaab560bb0 in CalAnimation::getCoreAnimation () from /usr/lib/libcal3d.so.11
No symbol table info available.
#1  0x00002aaaab598e9a in CalMixer::updateSkeleton () from /usr/lib/libcal3d.so.11
No symbol table info available.
#2  0x00002aaaab59ab99 in CalModel::update () from /usr/lib/libcal3d.so.11
No symbol table info available.
#3  0x0000000000424754 in display_game_handler (win=0x4f8a940) at gamewin.c:604
       main_count = 80697
       times_FPS_below_3 = 0
       next_fps_time = 1600215
       last_count = 21
       fps = {57, 57, 56, 54, 51}
       fps_average = 55
       shadows_were_disabled = 0
       str = "\b\000\000\000\000\000\000\000\uffff\uffff\uffff\uffff\uffff*\000\000@`\uffff\uffff\uffff*\000\000\206=\uffff\uffff\uffff*\000\000@`\uffff\uffff\uffff*\000\000@`\uffff\uffff\uffff*\000\000\001\002\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000I\u047c\uffff\uffff*\000\000@`\uffff\uffff\uffff*\000\000\uffff\u013c\uffff\uffff*\000\000\000E\000\000\000\000\000\000m\uffff\232\uffff\uffff*\000\000@`\uffff\uffff\uffff*\000\000@\uffff\uffff\004\000\000\000\000\003", '\0' <repeats 23 times>, "m\uffff\232\uffff\uffff*\000\000@`\uffff\uffff\uffff*\000\000\uffff\uffff\uffff\uffff\000\000\000\000\001\000\000"
       y_line = 25
       i = 25
       any_reflection = 0
       mouse_rate = 137160704
#4  0x000000000041de5e in draw_window (win=0x4f8a940) at elwindows.c:981
       ret_val = 1
       W = (widget_list *) 0x0
#5  0x000000000041e22e in display_window (win_id=0) at elwindows.c:1111
No locals.
#6  0x000000000041c517 in display_windows (level=1) at elwindows.c:52
       id = -1
       next_id = -9999
       i = 0
#7  0x000000000041a6c3 in draw_scene () at draw_scene.c:87
No locals.
#8  0x0000000000433c4a in start_rendering () at main.c:83
       event = {type = 24 '\030', active = {type = 24 '\030', gain = 102 'f', state = 33 '!'}, key = {type = 24 '\030', which = 102 'f',
   state = 33 '!', keysym = {scancode = 2 '\002', sym = 2864694747, mod = 10922, unicode = 29037}}, motion = {type = 24 '\030', which = 102 'f',
   state = 33 '!', x = 2, y = 0, xrel = -14885, yrel = -21825}, button = {type = 24 '\030', which = 102 'f', button = 33 '!', state = 5 '\005',
   x = 2, y = 0}, jaxis = {type = 24 '\030', which = 102 'f', axis = 33 '!', value = 2}, jball = {type = 24 '\030', which = 102 'f', ball = 33 '!',
   xrel = 2, yrel = 0}, jhat = {type = 24 '\030', which = 102 'f', hat = 33 '!', value = 5 '\005'}, jbutton = {type = 24 '\030', which = 102 'f',
   button = 33 '!', state = 5 '\005'}, resize = {type = 24 '\030', w = 2, h = -1430272549}, expose = {type = 24 '\030'}, quit = {type = 24 '\030'},
 user = {type = 24 '\030', code = 2, data1 = 0x2aaaaabfc5db, data2 = 0x42d2716d}, syswm = {type = 24 '\030', msg = 0x2aaaaabfc5db}}
       music_thread = (SDL_Thread *) 0x5329080
       network_thread = (SDL_Thread *) 0x513a630
       message_queue = (queue_t *) 0x5199760
#9  0x0000000000433e5d in main (argc=0, argv=0xbd6456a4) at main.c:181
No locals.

Here's the actors_list:

(gdb) print max_actors
$28 = 27
(gdb) print actors_list[0]->calmodel
$1 = (class CalModel *) 0x81e7fd0
(gdb) print actors_list[1]->calmodel
$2 = (class CalModel *) 0x4fff400
(gdb) print actors_list[2]->calmodel
$3 = (class CalModel *) 0x84a0a60
(gdb) print actors_list[3]->calmodel
$4 = (class CalModel *) 0x81c3a80
(gdb) print actors_list[4]->calmodel
$5 = (class CalModel *) 0x8774910
(gdb) print actors_list[5]->calmodel
$6 = (class CalModel *) 0x50a9e70
(gdb) print actors_list[6]->calmodel
$7 = (class CalModel *) 0x836cf30
(gdb) print actors_list[7]->calmodel
$8 = (class CalModel *) 0x843a030
(gdb) print actors_list[8]->calmodel
$9 = (class CalModel *) 0x84957f0
(gdb) print actors_list[9]->calmodel
$10 = (class CalModel *) 0x81bf370
(gdb) print actors_list[10]->calmodel
$11 = (class CalModel *) 0x85a5590
(gdb) print actors_list[11]->calmodel
$12 = (class CalModel *) 0x7f8aa20
(gdb) print actors_list[12]->calmodel
$13 = (class CalModel *) 0x8ab2180
(gdb) print actors_list[13]->calmodel
$14 = (class CalModel *) 0x862e2a0
(gdb) print actors_list[14]->calmodel
$15 = (class CalModel *) 0x83968b0
(gdb) print actors_list[15]->calmodel
$16 = (class CalModel *) 0x844c3a0
(gdb) print actors_list[16]->calmodel
$17 = (class CalModel *) 0x8512520
(gdb) print actors_list[17]->calmodel
$18 = (class CalModel *) 0x84ddab0
(gdb) print actors_list[18]->calmodel
$19 = (class CalModel *) 0x89a1a60
(gdb) print actors_list[19]->calmodel
$20 = (class CalModel *) 0x8b8ff60
(gdb) print actors_list[20]->calmodel
$21 = (class CalModel *) 0x7f278c0
(gdb) print actors_list[21]->calmodel
$22 = (class CalModel *) 0x8071040
(gdb) print actors_list[22]->calmodel
$23 = (class CalModel *) 0x86cfb00
(gdb) print actors_list[23]->calmodel
$24 = (class CalModel *) 0x893dd80
(gdb) print actors_list[24]->calmodel
$25 = (class CalModel *) 0x8493010
(gdb) print actors_list[25]->calmodel
$26 = (class CalModel *) 0x7f2a9a0
(gdb) print actors_list[26]->calmodel
$27 = (class CalModel *) 0x878e8d0

However, from the detailed backtrace we saw that i==25, hence it's actors_list[25] that crashed the client:

(gdb) print actors_list[25]
$29 = (actor *) 0x83ba870
(gdb) print *actors_list[25]
$30 = {
actor_id = 1549, 
actor_type = 31, 
tmp = {
 have_tmp = 1, 
 cur_frame = '\0' 
 <repeats 15 times>, 
 x_pos = 83, 
 y_pos = 42.5, 
 z_pos = 0,
     x_tile_pos = 166, 
 y_tile_pos = 85, 
 x_rot = 0, 
 y_rot = 0, 
 z_rot = 90
}, 

calmodel = 0x7f2a9a0, 
cur_anim = {
 anim_index = 12, 
 kind = 0,
       	duration = 0.0361951776
}, 
cur_idle_anims = {
 {
 	anim_index = 0, 
 	kind = 0, 
 	duration = 0
 } <repeats 16 times>
}, 
IsOnIdle = 0, 
anim_time = 0, 
x_pos = 83,
y_pos = 42.5, 
z_pos = 0, 
x_tile_pos = 166, 
y_tile_pos = 85, 
x_rot = 0, 
y_rot = 0, 
z_rot = 90, 
boots = 0, 
hair = 0, 
skin = 0, 
pants = 0, 
shirt = 0,
cur_weapon = 0, 
is_enhanced_model = 0, 
body_parts = 0x0, 
cur_frame = '\0' <repeats 15 times>, 
remapped_colors = 0 '\0', 
texture_id = 60,
skin_name = "./meshes/skeleton1.bmp", 
'\0' <repeats 233 times>, 
actor_name = "\206Skeleton", 
'\0' <repeats 246 times>,
que = '\0' <repeats 20 times>, 
last_command = 0 '\0', 
busy = 0 '\0', 
sitting = 1 '\001', 
fighting = 0 '\0', 
move_x_speed = 0, 
move_y_speed = 0,
move_z_speed = 0, 
movement_frames_left = 0, 
rotate_x_speed = 0, 
rotate_y_speed = 0, 
rotate_z_speed = 0, 
rotate_frames_left = 0,
after_move_frames_left = 0, 
moving = 0 '\0', 
rotating = 0 '\0', 
stop_animation = 0 '\0', 
stand_idle = 1 '\001', 
sit_idle = 0 '\0', 
dead = 0 '\0',
damage = 0, 
damage_ms = 0, 
last_health_loss = 0, 
cur_health = 25, 
max_health = 25, 
ghost = 0 '\0', 
kind_of_actor = 19,
current_displayed_text = '\0' <repeats 59 times>, 
current_displayed_text_time_left = 0, 
x_speed = 0, 
y_speed = 0, 
z_speed = 0
}

(gdb) print *actors_list[25]->calmodel
$31 = {
       m_pCoreModel = 0x6a434f0,
       m_pSkeleton = 0x84a0a20,
       m_pMixer = 0x83bb5e0,
       m_pMorphTargetMixer = 0x7f73b60,
       m_pPhysique = 0x86474e0,
       m_pSpringSystem = 0x7f73bc0,
       m_pRenderer = 0x8629570,
       m_userData = 0x0,
       m_vectorMesh = {
               <std::_Vector_base<CalMesh*, std::allocator<CalMesh*> >> = {
                       _M_impl = {
                               <std::allocator<CalMesh*>> = {
                                       <__gnu_cxx::new_allocator<CalMesh*>> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_start = 0x81565a0,
                               _M_finish = 0x81565a8,
                               _M_end_of_storage = 0x81565a8}
                       },
               },

               m_boundingBox = {
                       plane = {
                               {
                                       a = -1.17704891e-12,
                                       b = 1.53049818e-41,
                                       c = 0,
                                       d = 0
                               },
                               {
                                       a = 0,
                                       b = 0,
                                       c = 0,
                                       d = 0
                               },
                               {
                                       a = 0,
                                       b = 0,
                                       c = 0,
                                       d = 0
                               },
                               {
                                       a = 6.80997673e-34,
                                       b = 0,
                                       c = 6.81818131e-34,
                                       d = 0
                               },
                               {
                                       a = 6.81818131e-34,
                                       b = 0,
                                       c = 0,
                                       d = 0
                               },
                               {
                                       a = 0,
                                       b = 0,
                                       c = 0,
                                       d = 0
                               }
                       }
               }
       }
}

(gdb) print *actors_list[25]->calmodel->m_pCoreModel
$32 = {m_strName = {
       static npos = 18446744073709551615,
       _M_dataplus = {
               <std::allocator<char>> = {
                       <__gnu_cxx::new_allocator<char>> = {
                               <No data fields>
                       },
                       <No data fields>
               },
               _M_p = 0x6a454e8 "Model"}
       },

       m_pCoreSkeleton = 0x6a43670,
       m_vectorCoreAnimation = {
               <std::_Vector_base<CalCoreAnimation*,std::allocator<CalCoreAnimation*> >> = {
                       _M_impl = {
                               <std::allocator<CalCoreAnimation*>> = {
                                       <__gnu_cxx::new_allocator<CalCoreAnimation*>> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                       _M_start = 0x6a714a0,
                       _M_finish = 0x6a71518,
                       _M_end_of_storage = 0x6a71520
                       }
               },
               <No data fields>
       },

       m_vectorCoreMorphAnimation = {
               <std::_Vector_base<CalCoreMorphAnimation*,std::allocator<CalCoreMorphAnimation*> >> = {
                       _M_impl = {
                               <std::allocator<CalCoreMorphAnimation*>> = {
                                       <__gnu_cxx::new_allocator<CalCoreMorphAnimation*>> = {
                                               <No data fields>
                                               },
                                       <No data fields>
                               },

                               _M_start = 0x0,
                               _M_finish = 0x0,
                               _M_end_of_storage = 0x0
                               }
                       },
                       <No data fields>
               },

               m_vectorCoreMesh = {
                       <std::_Vector_base<CalCoreMesh*,std::allocator<CalCoreMesh*> >> = {
                               _M_impl = {
                                       <std::allocator<CalCoreMesh*>> = {
                                               <__gnu_cxx::new_allocator<CalCoreMesh*>> = {
                                                       <No data fields>
                                               },
                                               <No data fields>
                                       },

                                       M_start = 0x6a9cf90,
                                       _M_finish = 0x6a9cf98,
                                       _M_end_of_storage = 0x6a9cf98
                               }
                       },
                       <No data fields>},
                       m_vectorCoreMaterial = {
                               <std::_Vector_base<CalCoreMaterial*,std::allocator<CalCoreMaterial*> >> = {
                                       _M_impl = {<std::allocator<CalCoreMaterial*>> = {
                                               <__gnu_cxx::new_allocator<CalCoreMaterial*>> = {
                                                       <No data fields>
                                               },
                                               <No data fields>
                                       },
                               _M_start = 0x0,
                               _M_finish = 0x0,
                               _M_end_of_storage = 0x0
                               }
                       },
                       <No data fields>
               },
               m_mapmapCoreMaterialThread = {
                       _M_t = {
                               _M_impl = {
                                       <std::allocator<std::_Rb_tree_node<std::pair<const int, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int> > > > > >> = {
                                       <__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int> > > > > >> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_key_compare = {
                                       <std::binary_function<int,int,bool>> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_header = {
                                       _M_color = std::_S_red,
                                       _M_parent = 0x0,
                                       _M_left = 0x6a43568,
                                       _M_right = 0x6a43568
                               },
                               _M_node_count = 0
                       }
               }
       },
       m_userData = 0x0,

       m_animationName = {
               _M_t = {
                       _M_impl = {
                               <std::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
                                       <__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_key_compare = {
                                       <std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,bool>> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_header = {
                                       _M_color = std::_S_red,
                                       _M_parent = 0x0,
                                       _M_left = 0x6a435a0,
                                       _M_right = 0x6a435a0
                               },
                               _M_node_count = 0
                       }
               }
       },
       m_materialName = {
               _M_t = {
                       _M_impl = {
                               <std::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
                                       <__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_key_compare = {
                                       <std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,bool>> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_header = {
                                       _M_color = std::_S_red,
                                       _M_parent = 0x0,
                                       _M_left = 0x6a435d0,
                                       _M_right = 0x6a435d0
                               },
                               _M_node_count = 0
                       }
               }
       },
       m_meshName = {
               _M_t = {
                       _M_impl = {
                               <std::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
                                       <__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_key_compare = {
                                       <std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,bool>> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_header = {
                                       _M_color = std::_S_red,
                                       _M_parent = 0x0,
                                       _M_left = 0x6a43600,
                                       _M_right = 0x6a43600
                               },
                               _M_node_count = 0
                       }
               }
       }
}

(gdb) print *actors_list[25]->calmodel->m_pSkeleton
$34 = {
       m_pCoreSkeleton = 0x6a43670,
       m_vectorBone = {
               <std::_Vector_base<CalBone*,std::allocator<CalBone*> >> = {
                       _M_impl = {
                               <std::allocator<CalBone*>> = {
                                       <__gnu_cxx::new_allocator<CalBone*>> = {
                                               <No data fields>
                                       },
                                       <No data fields>
                               },
                               _M_start = 0x85a3510,
                               _M_finish = 0x85a3648,
                               _M_end_of_storage = 0x85a3648
                       }
               },
               <No data fields>
       },
       m_isBoundingBoxesComputed = false
}

 

To be continued...

Edited by Wytter

Share this post


Link to post
Share on other sites
Nintenduh, That's because you're using a diff. map than what's on the server - it has a different heightmap, hence you'll appear as if you're in a different Z location.

178086[/snapback]

Put the new maps into mapn/ and the old ones into maps/ and it should work perfectly for now.

Share this post


Link to post
Share on other sites

Wytter, your bug is probably caused by the display thread displaying an actor while the network thread is still building that actor. The best way to solve this IMO is to merge add_actor into add_actor_from_server and fill out the data structure completely before saving the pointer in the actors list, so you don't need a lock.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×