Alberich Report post Posted November 21, 2008 the last fix in for the char name length introduced this: ignore.c: In function `pre_check_if_ignored':ignore.c:172: warning: 'i' might be used uninitialized in this function Share this post Link to post Share on other sites
Torg Report post Posted November 21, 2008 the last fix in for the char name length introduced this:ignore.c: In function `pre_check_if_ignored':ignore.c:172: warning: 'i' might be used uninitialized in this function Well spotted... I'm not getting that warning with (what I thought was) all warnings on... o.O Anyway, it should now be fixed. Share this post Link to post Share on other sites
Alberich Report post Posted November 21, 2008 Nice, very fast fix! An other thing, my screen stays black (or gray at dawn) without EXT_ACTOR_DICT defined. No idea what might be wrong. I'm using the new actor_def files from your thread. (UVP = 0) Share this post Link to post Share on other sites
asgnny Report post Posted November 21, 2008 Nice, very fast fix! An other thing, my screen stays black (or gray at dawn) without EXT_ACTOR_DICT defined. No idea what might be wrong. I'm using the new actor_def files from your thread. (UVP = 0) You need two of the 5 files to use current cvs without EXT_ACTOR_DICT, or all 5 files with EXT_ACTOR_DICT. I believe it is not backwards compatible. Unable to find id/property node weapon Unable to find id/property node helmet Last message repeated 9 times This is due to original player_weapons.xml and player_helmets.xml having a minor mistake in the ID's. Grabbing only those 2 files from my updated actor defs should fix those errors. The new .xml's also caused my existing client (cvs from October 30) to crash at startup. Switching back to the original data files is enough to make my old client work again, though. This is due to those additional files (in the above mentioned zip file) requiring EXT_ACTOR_DICT enabled, which was only committed to CVS on the 2nd of Nov. ;-) Share this post Link to post Share on other sites
rauch Report post Posted November 26, 2008 (edited) Situation: Killing a Hobgoblin in Zirak right at PV exit, someone else entered, client crashed (CVS from 2 or 3 days ago) Backtrace: rauch@hellmsklamm ~ $ gdb ./el.x86.linux.binGNU gdb 6.7.1 Copyright © 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu"... Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /home/rauch/el.x86.linux.bin [Thread debugging using libthread_db enabled] [New Thread 0x7f13ccdf3740 (LWP 8992)] [New Thread 0x419b3950 (LWP 8995)] [New Thread 0x421b4950 (LWP 8996)] arts grab audio ok [New Thread 0x429b5950 (LWP 8997)] [New Thread 0x431b6950 (LWP 8998)] [New Thread 0x439b7950 (LWP 8999)] [Thread 0x421b4950 (LWP 8996) exited] [New Thread 0x441b8950 (LWP 9000)] [Thread 0x441b8950 (LWP 9000) exited] [New Thread 0x449b9950 (LWP 9001)] [Thread 0x449b9950 (LWP 9001) exited] [New Thread 0x40f65950 (LWP 9002)] [Thread 0x40f65950 (LWP 9002) exited] Program received signal SIGSEGV, Segmentation fault. [switching to Thread 0x7f13ccdf3740 (LWP 8992)] 0x00000000004c9cfb in ensure_sample_loaded (in_filename=0x15e27e8 "sound/monster06.ogg") at sound.c:2078 2078 if (sound_type_data[sounds_list[sound_source_data[j].loaded_sound].sound].variant[k ].part[l]->sample_num == i) (gdb) bt full #0 0x00000000004c9cfb in ensure_sample_loaded (in_filename=0x15e27e8 "sound/monster06.ogg") at sound.c:2078 found = 0 i = 0 j = 0 k = 0 l = 0 sample_num = -1 error = 32531 data = (ALvoid *) 0x7fffd4f33420 pBuffer = (ALuint *) 0x4490b3 pSample = (sound_sample *) 0x40435e2a0176ca90 filename = "/home/rauch/el/el-data-170.1/sound/lion01.ogg\000\000g\000\232�C\222C\200����C\235\\��8��ë�wC�C*C&�\002BMŬâ���Hd\232B9���\230�\231�\f1u��62�\207��C����(�\024C�\025?�����q=\027C��\022CK��C�R\024�\177\027ZA.i,B�\aLC\0168��h�\212�\023\177\000\000\001\000\000\000\000\000\000\000y\234\212�\023\177\000\000�[b\000\000\000\000\000�j\006�\v.��" #1 0x00000000004ca0c6 in load_samples (pType=0x178ef60) at sound.c:2192 i = 1 j = 0 #2 0x00000000004ca9d5 in add_sound_object_gain (type=68, x=91, y=178, me=0, initial_gain=1) at sound.c:2466 tx = 183 ty = 355 distanceSq = 125 sound_num = 15 cookie = 5369 pNewType = (sound_type *) 0x178ef60 maxDistanceSq = 0 __FUNCTION__ = "add_sound_object_gain" #3 0x00000000004ca5c9 in add_death_sound (act=0x1d7a8120) at sound.c:2342 snd = 68 #4 0x00000000004186f6 in get_actor_damage (actor_id=4087, damage=21) at actor_scripts.c:1640 act = (actor *) 0x1d7a8120 ---Type <return> to continue, or q <return> to quit--- blood_level = 0 bone_list = {{126.300934, 149.83139, -246.485245}, {408.406158, 76.6395493, -494.077942}, {3.6484797, -57.2020378, 2.80259693e-45}, {0, 0, 0}, {0, 0, 0}, {0, 3.22298647e-43, 0}, {0, 0, 0}, {0, 0, 0}, {7.67639819e-38, 0, 7.67443861e-38}, {0, 7.72568802e-38, 0}, { -1138335.75, 4.55856403e-41, 179.663086}, {-364.703369, 18.4791393, 1.40129846e-45}, {0, 0, -8.3567942e+12}, {4.59163468e-41, -8.35734366e+12, 4.59163468e-41}, {-8.35677323e+12, 4.59163468e-41, 7.31666133e-38}, {0, -8.35754498e+12, 4.59163468e-41}, {7.67650805e-38, 0, -288.292114}, {0, 3.5592981e-43, 8.37374372e-38}, {0, 0, 85.7789383}, {0, 5.60519386e-45, 0}, {1.40129846e-45, 1.48958027e-42, 2.69049305e-42}, {1.23314265e-43, 5.60519386e-45, -0.466812193}, {2.80259693e-45, 0, 5.73971851e-42}, {0, 0, 5.73971851e-42}, {0, 0, 4.20389539e-45}, {0, 1.40129846e-45, 9.80908925e-45}, {7.82494928e-38, 0, 52.25}, {0, -0.466812193, 1.07619722e-41}, {2.66246708e-42, 1.40129846e-42, 1.40129846e-45}, {1.40129846e-44, 1.26116862e-44, 0}, {2.80259693e-45, 0, 2.69049305e-42}, {1.48958027e-42, 1.40129846e-45, 0}, {5.60519386e-45, 0, 0}, {0, 5.60519386e-45, 1.12103877e-44}, {1.12103877e-44, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 1.821688e-44, 0}, {-12.0950317, -264.027191, -330.836304}, {266.152344, -412.552979, 279.008942}, {44.2046165, -490.618225, -46.3335266}, {84.5396805, 2.80259693e-45, 460.266479}, {3.58732407e-43, 3.58732407e-43, 1.40129846e-45}, {0, 0, 0}, {0, 0, -159.586441}, {473.460175, -436.423401, -29.0754185}, {242.258591, 226.165222, 3.02334452}, {-445.914948, -490.577698, -67.0618973}, { -69.542984, 388.217529, -38.934082}, {-312.684021, -13.7221069, -418.848022}, {-272.723389, 490.441406, 83.5005722}, {49.9583321, -451.516785, 213.633255}, {22.2136078, 369.035706, 2.80259693e-45}, {-190.858948, 3.58732407e-43, 3.58732407e-43}, {1.40129846e-45, 0, 0}, {0, 0, 0}, {73.6991348, 239.552994, 193.822968}, {-393.760101, 16.1862183, 461.274292}, {-192.260269, 424.751587, 148.080032}, {218.30809, -304.208649, -370.980194}, {140.821747, 444.851624, 131.494141}, {-186.591766, -87.9422455, -488.716797}, {58.5009575, -40.2731018, 401.424774}, {-295.357819, -239.874893, -173.178055}, {2.80259693e-45, 236.937225, 3.58732407e-43}, {3.58732407e-43, 1.40129846e-45, 0}, {0, 0, 0}, {0, -423.895935, 231.771347}, {-128.818695, 70.5785141, -490.705688}, {65.0122223, -486.679565, 66.8309097}, {-93.1484222, -183.557098, -386.135834}, {-259.240997, -451.796692, -107.375687}, {185.338867, -22.7574177, -393.524902}, {-307.605469, 155.255234, 227.305161}, {417.406494, 92.4281693, -419.336365}, {-256.152405, 2.80259693e-45, 112.693657}, { 3.58732407e-43, 3.58732407e-43, 1.40129846e-45}, {0, 0, 0}, {0, 0, -445.780579}, {116.178673, 61.3077164, -229.22879}, {-440.108551, -9.7094698, 480.639008}, {137.447662, -18.491581, 498.299286}, {-36.8227158, 125.542816, 475.829315}, {-88.4617462, 315.943359, 382.775818}, {60.5233879, -359.939453, 332.820312}, {98.3618698, -28.566, -265.391846}, {422.789734, 16.1929798, 2.80259693e-45}, {438.594391, 3.58732407e-43, 3.58732407e-43}, {1.40129846e-45, 0, 0}, {0, 0, 0}, {-349.993134, 376.498077, 329.011871}, {0.633451641, 275.654999, -260.907166}, {-325.487061, 169.729706, 459.82431}, {98.7592545, 26.7738247, 493.886047}, {-73.2100601, -82.2861862, -105.739258}, {481.713806, -358.04715, -178.251953}, {300.047821, 161.209656, 375.477966}, {-288.145294, -246.855377, 426.544006}, { 2.80259693e-45, 374.821106, 3.58732407e-43}, {3.58732407e-43, 1.40129846e-45, 0}, {0, 0, 0}, {0, 0, 2.25}, {-45847824, 4.55856403e-41, 233.656967}, {393.503418, 1.44614002e-42, 176}, {9.40395481e-38, 20, 163.729416}, {-469.044922, 0, 0}, {42.248291, 6.00136518, 0}, {1.625, 127.779335, 128.166931}, {0, 0, -276.878906}, {239.109421, 2.80259693e-45, 1.625}, {3.58732407e-43, 3.58732407e-43, 1.40129846e-45}, {0, 0, 0}, {0, 0, 1.4080247e-41}, {0, 492.396515, -83.6037216}, {0, 1.625, 0}, {4.11035156, 8.7581154e-43, 0}, {1, 0, 1.02551918e-22}, {0, 0, 2.3125}, {-46135728, 4.55856403e-41, 3.09542941e-21}, {0, -111424128, 4.55856403e-41}, {7.67650805e-38, 0, -1686925.75}, {4.55856403e-41, -8.35746529e+12, 4.59163468e-41}, {7.67650805e-38, 0, 0}, {0, -1092681.88, 1.12103877e-44}, { -8.35743593e+12, 4.59163468e-41, -8.35741916e+12}, {4.59163468e-41, 2.39992238e-22, -0}, {7.67443861e-38, 0, 1.79366203e-43}, {0, 0, 0}, {1.40129846e-45, 0, 3.09364662e-41}, {1.40129846e-45, 1.36357345e-36, 0}, {-0.466812193, 1.07619722e-41, 2.66246708e-42}, { 1.40129846e-42, 1.40129846e-45, 1.40129846e-44}, {1.77546667e-34, 0, 2.80259693e-45}, {0, 2.69049305e-42, 1.48958027e-42}, {7.67639819e-38, 0, 3.48194642e-41}, {0, 5.07965088e-40, 0}, {7.68811528e-38, 0, 3.48194642e-41}, {0, 1.72919005e-19, 0}, {-1453085.25, 4.55856403e-41, 7.68570281e-38}, {0, 7.67639819e-38, 0}, {0, 1.40129846e-45, 7.67639819e-38}, {0, 1.72937306e-19, 0}, {-1453270.88, 4.55856403e-41, 7.67642958e-38}, {0, 7.67639819e-38, 0}, {7.76165991e-38, 0, -1453301.25}, {4.55856403e-41, 7.67443861e-38, 0}, { 7.67443861e-38, 0, 7.67639819e-38}, {0, -1453490.12, 4.55856403e-41}, {0, 0, -1.62175179}, {4.55856403e-41, 1.40129846e-45, 0}, {0, 0, 7.72500194e-38}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {1.83670992e-40, -111423872, 4.55856403e-41}, {3.06604945e-39, 1.83670992e-40, -8.3577547e+12}, {4.59163468e-41, 7.67639819e-38, 0}, {7.67443861e-38, 0, 0}, {0, 0, 0}, {1.40129846e-45, 0, -1453149.75}, {4.55856403e-41, -8.3577547e+12, 4.59163468e-41}, {-1466474.88, 4.55856403e-41, 7.67439825e-38}, {0, 1.40129846e-45, 0}, {0, 0, 7.0729744e-38}, {0, 7.31666133e-38, 0}, {7.67443861e-38, 0, 7.8237834e-38}, {0, -22984852, 4.55856403e-41}, {-26170560, 4.55856403e-41, -23118112}, {4.55856403e-41, 0, 0}, {-1153104.25, 4.55856403e-41, 2.80259693e-45}, {0, 7.67639819e-38, 0}, {2.80259693e-45, 0, 1.40129846e-45}, {0, 7.67443861e-38, 0}, {-1155702.25, 4.55856403e-41, 4.90454463e-44}, {3.50324616e-44, -8.3577547e+12, 4.59163468e-41}, {0, 2.64486229e-38, 0}, {0, 5.60519386e-44, 2.35100019e-38}, {7.67639819e-38, 0, 7.67639819e-38}, {0, 7.78780254e-38, 0}, { 1.1479437e-41, 0, 2.86985925e-42}, {0, 7.67639819e-38, 0}, {-1142304.62, 4.55856403e-41, 7.76165991e-38}, {0, 7.67443861e-38, 0}, {0, 0, 8.96831017e-44}, {9.10844002e-44, -111423872, 4.55856403e-41}, {0, 2.80259693e-45, 1.54142831e-44}, {1.40129846e-45, 2.80259693e-45, 1.40129846e-45}, {-111424000, 4.55856403e-41, 0}, {1.625, 0, 4.11035156}, {8.7581154e-43, 0, 1}, {0, -2.95219803, 4.55856403e-41}, {0, 2.3125, -46135728}, {4.55856403e-41, -7.04997253, 4.55856403e-41}, {0, 2.3125, 5.60519386e-45}, {0, 8.7581154e-43, 0}, {3.58732407e-43, 0, -9909349}, {4.55856403e-41, 8.7581154e-43, 0}, {-3.73575211, 4.55856403e-41, -8.35792247e+12}, {4.59163468e-41, -9909893, 2.38220739e-44}...} total_bones = 0 bone = 480983568 ---Type <return> to continue, or q <return> to quit--- bone_x = 0 bone_y = 1.40129846e-45 bone_z = 4.59163468e-41 #5 0x00000000004a0be4 in process_message_from_server (in_data=0x7f13b801dd60 "/\005", data_length=7) at multiplayer.c:1438 text_buf = "\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000���\001\000\000\000\000<\000\000\000\000\000\000\000���\001\000\000\000\000�ݱ�\023\177\000\000\026\027\000\000�\030\202hm���\023\177\000\000\001\000\000\000\000\000\000\000\000Px�\023\177\000\000|\210���\177\000\000(\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000eװ�\023\177", '\0' <repeats 22 times>, "���\237\005\000\000\000\023\177\000\000\002\000\000\000\000\001\000\000\001\000\000\000\000\000\000\000(", '\0' <repeats 15 times>, "���\001\000\000\000\000�ݱ�\023\177\000\000�\026\000\000d��\237\200l���\177\000\000�k���\177\000\000\202"... #6 0x0000000000491dfe in start_rendering () at main.c:161 message = (message_t *) 0x7f13b801dd40 event = {type = 4 '\004', active = {type = 4 '\004', gain = 0 '\0', state = 0 '\0'}, key = {type = 4 '\004', which = 0 '\0', state = 0 '\0', keysym = {scancode = 200 '�', sym = 1, mod = KMOD_NONE, unicode = 0}}, motion = {type = 4 '\004', which = 0 '\0', state = 0 '\0', x = 968, y = 667, xrel = 1, yrel = 0}, button = {type = 4 '\004', which = 0 '\0', button = 0 '\0', state = 0 '\0', x = 968, y = 667}, jaxis = {type = 4 '\004', which = 0 '\0', axis = 0 '\0', value = 968}, jball = {type = 4 '\004', which = 0 '\0', ball = 0 '\0', xrel = 968, yrel = 667}, jhat = {type = 4 '\004', which = 0 '\0', hat = 0 '\0', value = 0 '\0'}, jbutton = {type = 4 '\004', which = 0 '\0', button = 0 '\0', state = 0 '\0'}, resize = {type = 4 '\004', w = 43713480, h = 1}, expose = { type = 4 '\004'}, quit = {type = 4 '\004'}, user = {type = 4 '\004', code = 43713480, data1 = 0x1, data2 = 0x0}, syswm = {type = 4 '\004', msg = 0x1}} network_thread = (SDL_Thread *) 0x18312010 message_queue = (queue_t *) 0x1818a2a0 done = 0 network_thread_data = {0x1818a2a0, 0x9fe750} last_frame_and_command_update = 5993344 #7 0x0000000000492369 in main (argc=1, argv=0x7fffd4f38c58) at main.c:339 No locals. Edit: Adding player names to autocomplete (with Ctrl+Tab) from #gm doesn't work anymore either Edited November 26, 2008 by rauch Share this post Link to post Share on other sites
bluap Report post Posted November 26, 2008 Situation: Killing a Hobgoblin in Zirak right at PV exit, someone else entered, client crashed (CVS from 2 or 3 days ago) Is this reproducible? If so could you try adding a check for the part[] pointer: Index: sound.c =================================================================== RCS file: /cvsroot/elc/elc/sound.c,v retrieving revision 1.215 diff -a -u -r1.215 sound.c --- sound.c 26 Nov 2008 16:33:58 -0000 1.215 +++ sound.c 26 Nov 2008 20:35:45 -0000 @@ -2075,7 +2075,8 @@ for (l = STAGE_INTRO; l <= STAGE_OUTRO; l++) { // Check if this sample is loaded into a source atm - if (sound_type_data[sounds_list[sound_source_data[j].loaded_sound].sound].variant[k].part[l]->sample_num == i) + if (sound_type_data[sounds_list[sound_source_data[j].loaded_sound].sound].variant[k].part[l] && + sound_type_data[sounds_list[sound_source_data[j].loaded_sound].sound].variant[k].part[l]->sample_num == i) { found = 1; break; Share this post Link to post Share on other sites
rauch Report post Posted November 26, 2008 Situation: Killing a Hobgoblin in Zirak right at PV exit, someone else entered, client crashed (CVS from 2 or 3 days ago) Is this reproducible? If so could you try adding a check for the part[] pointer: it happened at least two times to me now in similar situations, was not able to provoke it though. I will test your patch and run the client inside gdb for some time. thanks Share this post Link to post Share on other sites
bluap Report post Posted November 27, 2008 Edit: Adding player names to autocomplete (with Ctrl+Tab) from #gm doesn't work anymore either Should be fixed in CVS now. Share this post Link to post Share on other sites
rauch Report post Posted November 27, 2008 (edited) Checkout from yesterday with your patch applied, crash after some summoning: rauch@hellmsklamm ~ $ gdb ./el.x86.linux.bin GNU gdb 6.7.1 Copyright (C) 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu"... Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /home/rauch/el.x86.linux.bin [Thread debugging using libthread_db enabled] [New Thread 0x7f9898183740 (LWP 7494)] [New Thread 0x40a01950 (LWP 7647)] [New Thread 0x42649950 (LWP 7648)] arts grab audio ok [New Thread 0x41a63950 (LWP 7649)] [New Thread 0x42e4a950 (LWP 7650)] [New Thread 0x4364b950 (LWP 7670)] [Thread 0x42649950 (LWP 7648) exited] [New Thread 0x43e4c950 (LWP 7672)] [Thread 0x43e4c950 (LWP 7672) exited] [New Thread 0x4464d950 (LWP 7682)] [Thread 0x4464d950 (LWP 7682) exited] [New Thread 0x44e4e950 (LWP 7684)] [Thread 0x44e4e950 (LWP 7684) exited] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x40a01950 (LWP 7647)] 0x00000000004cc00b in update_sound (ms=20) at sound.c:3061 3061 pSample = &sound_sample_data[pVariant->part[pSource->current_stage]->sample_num]; (gdb) bt full #0 0x00000000004cc00b in update_sound (ms=20) at sound.c:3061 i = 64 error = 0 pSource = (source_data *) 0x165bfa0 pSample = (sound_sample *) 0x176c650 pSoundType = (sound_type *) 0x1788320 pVariant = (sound_variants *) 0x1788348 deadBuffer = 1 numProcessed = 345890 buffer = 32823 state = 4114 source = 0 x = 268 y = 222 distanceSq = 8 maxDistSq = 1225 relative = 1 tx = 270 ty = 224 sourcePos = {268, 222, 0} listenerPos = {270, 224, 0} listenerVel = {0, 0, 0} listenerOri = {-1, 1, 0, 0, 0, 1} l = 2 __FUNCTION__ = "update_sound" #1 0x00000000004e3922 in my_timer (interval=20, data=0x0) at timers.c:48 new_time = 32664 e = {type = 96 '`', active = {type = 96 '`', gain = 64 '@', state = 233 '�'}, key = {type = 96 '`', which = 64 '@', state = 233 '�', keysym = {scancode = 152 '\230', sym = 2548646062, mod = 32664, unicode = 41391}}, motion = {type = 96 '`', which = 64 '@', state = 233 '�', x = 32664, y = 0, xrel = 16558, yrel = -26647}, button = {type = 96 '`', which = 64 '@', button = 233 '�', state = 151 '\227', x = 32664, y = 0}, jaxis = {type = 96 '`', which = 64 '@', axis = 233 '�', value = 32664}, jball = {type = 96 '`', ---Type <return> to continue, or q <return> to quit--- which = 64 '@', ball = 233 '�', xrel = 32664, yrel = 0}, jhat = {type = 96 '`', which = 64 '@', hat = 233 '�', value = 151 '\227'}, jbutton = {type = 96 '`', which = 64 '@', button = 233 '�', state = 151 '\227'}, resize = {type = 96 '`', w = 32664, h = -1746321234}, expose = {type = 96 '`'}, quit = {type = 96 '`'}, user = {type = 96 '`', code = 32664, data1 = 0x7f9897e940ae, data2 = 0x492ea1af}, syswm = {type = 96 '`', msg = 0x7f9897e940ae}} normal_animation_loop_count = 2 #2 0x00007f9897e5ba97 in ?? () from /usr/lib/libSDL-1.2.so.0 No symbol table info available. #3 0x00007f9897e94093 in ?? () from /usr/lib/libSDL-1.2.so.0 No symbol table info available. #4 0x00007f9897e5b477 in ?? () from /usr/lib/libSDL-1.2.so.0 No symbol table info available. #5 0x00007f9897e91129 in ?? () from /usr/lib/libSDL-1.2.so.0 No symbol table info available. #6 0x00007f9897c36047 in start_thread () from /lib/libpthread.so.0 No symbol table info available. #7 0x00007f9895e5628d in clone () from /lib/libc.so.6 No symbol table info available. #8 0x0000000000000000 in ?? () No symbol table info available. Edit: same crash occured a second time, back to an older client for now. Edited November 27, 2008 by rauch Share this post Link to post Share on other sites
ago Report post Posted November 27, 2008 (edited) the reason for the crash is in get_available_source() (sound.c:1798) There is no check if used_sources == max_sources. It does always insert new sources into the array causing an overflow. This can be reproduced pretty easily by compiling the client with a lower ABS_MAX_SOURCES value (like 16 or less) and fight lots of monsters at once. diff --git a/sound.c b/sound.c --- a/sound.c +++ b/sound.c @@ -1799,6 +1799,9 @@ source_data * get_available_source(int priority) { source_data * pSource; int i; + + if (used_sources == max_sources) + return NULL; // Search for an available source. The sources are ordered by decreasing play priority for (pSource = sound_source_data, i = 0; i < max_sources - 1; ++i, ++pSource) The better solution would be the removal of the last source in the list, which is the oldest and one with a lower priority but I'm not sure if stopping and removing this entry is would work easily Edited November 27, 2008 by ago Share this post Link to post Share on other sites
rauch Report post Posted November 27, 2008 (edited) I couldn't provoke another crash with this patch added. thanks Edited November 27, 2008 by rauch Share this post Link to post Share on other sites
bluap Report post Posted November 27, 2008 the reason for the crash is in get_available_source() (sound.c:1798) There is no check if used_sources == max_sources. It does always insert new sources into the array causing an overflow. This can be reproduced pretty easily by compiling the client with a lower ABS_MAX_SOURCES value (like 16 or less) and fight lots of monsters at once. Thanks ago, I've commited your patch. I couldn't provoke another crash with this patch added. thanks Have you been using only ago's patch? I need to follow up my original suggestion to see if that is needed. Share this post Link to post Share on other sites
rauch Report post Posted November 27, 2008 no, I used both patches, yours and the one from ago. Share this post Link to post Share on other sites
bluap Report post Posted November 27, 2008 no, I used both patches, yours and the one from ago. OK, thanks. I've checked all the access to that array that is the only one that looks unsafe. I've committed the patch. Share this post Link to post Share on other sites
Ermabwed Report post Posted April 25, 2009 Today's update makes all objects be in shade, tried various options without success (actually turning off reflections gave me the floor back in VotD and turning off Sky worked in SRM for all objects when I didn't see the sky; isometric view worked), updated graphics drivers as well but didn't help. Went back to yesterday's version which worked without problems and continues to do so. Rough system details are gentoo linux 2.6.27-r8, ati radeon hd 4800, using ati-drivers-8.593 (after update), gcc-4.3.2, let me know what else you need, though from the description it seems the problem is at the end of whoever made the changes Share this post Link to post Share on other sites
bluap Report post Posted April 25, 2009 Today's update makes all objects be in shade... I can confirm this too. From my quick check, I only saw the problem outside at night. Now as dawn approaches, it is still darker than normal but objects are visible. I have had a quick look at the changes but it is probably best if the author Xaphier has a look. I'll PM him in case he has not seen this thread. Share this post Link to post Share on other sites
Xaphier Report post Posted April 25, 2009 Today's update makes all objects be in shade Should be fixed now Share this post Link to post Share on other sites
bluap Report post Posted April 25, 2009 Should be fixed now I'm confident I updated CVS and built your changes correctly but I'm still in darkness on the main server. Share this post Link to post Share on other sites
Xaphier Report post Posted April 26, 2009 I hope now I fixed the problem (I never had it). Share this post Link to post Share on other sites
bluap Report post Posted April 26, 2009 (edited) I hope now I fixed the problem (I never had it). Looks fixed for me now. Thanks. Edited April 26, 2009 by bluap Share this post Link to post Share on other sites
stormzel Report post Posted May 25, 2009 Hi 2 all I have included some options in a make.conf FEATURES += NIGHT_TEXTURES At compilation such error: make -f Makefile.linux CC textures.o textures.c: In function 'load_texture': textures.c:1192: error: 'data' undeclared (first use in this function) textures.c:1192: error: (Each undeclared identifier is reported only once textures.c:1192: error: for each function it appears in.) make: *** [textures.o] Error 1 full make.conf # set this to "no" if you don't want this file to be overwritten UPDATE_CONF=yes # tune these for your setup & compile options # IMPORTANT: if you are using a linker that needs libraries in correct order, make sure you list EYE_CANDY before PNG_SCREENSHOT if you use both ### Current release default options ### FEATURES += ATTACHED_ACTORS # allows to have 2 actors that are attached together, one of the actor will exist only on client side (needs server support) FEATURES += CLUSTER_INSIDES # Group objects into separate clusters for clipping on inside maps FEATURES += CONTEXT_MENUS # Enable context menus FEATURES += CUSTOM_LOOK # allows you to customize your look. FEATURES += CUSTOM_UPDATE # allows autoupdating of custom look information FEATURES += FUZZY_PATHS # Makes Tab Map walking not always follow exaclty the same path FEATURES += MINIMAP2 # Disables the rectangular minimap and enables the rotating minimap FEATURES += NEW_CAMERA_MOTION # Changes the behaviour of the camera by replacing the rotation duration by a constant deceleration. This gives a better control on the positionning of the camera. FEATURES += NEW_SELECTION # Enables new selection system. Needs OpenGL 1.3 or GL_ARB_texture_env_combine FEATURES += NEW_SOUND # Enables extended sound effects system FEATURES += NEW_TEX # use new texture coordinates for enhanced actors FEATURES += NEW_WEATHER # new weather effects FEATURES += PNG_SCREENSHOT # make screenshots in W3C's PNG format in game, requires libpng FEATURES += SKY_FPV # Use skybox with clouds/stars/etc, enable first person view, and other misc changes from Emajekral FEATURES += TEXT_ALIASES # Text aliases FEATURES += USE_INLINE # enable some optimizations to use inline functions instead of pure function calls FEATURES += USE_SHADER # Using shaders for water rendering. Needs NEW_FILE_IO FEATURES += VARIABLE_SPEED # allow to change the moving speed of actors (needs server support) FEATURES += ZLIB # Enables being able to read gzip compressed files, requires -lzlib/-lz ### Testing options (these options are possible for the next release and should be tested) ### FEATURES += ANTI_ALIAS # allows to enable/disable anti-aliasing in el.ini #FEATURES += DYNAMIC_ANIMATIONS # Synchronizes animation to FPS instead of a fixed timer #FEATURES += EMOTES # Support for additional animations parsed from local text with a seperate anim que #FEATURES += EXT_ACTOR_DICT # Removes remaining hard-coded actor def dictionaries - requires updated actor defs files (http://el.grug.redirectme.net/actor_defs.zip) #FEATURES += NEW_ALPHA # (undocumented) FEATURES += NIGHT_TEXTURES # enable night textures. changes textures at night to cooler colors FEATURES += USER_MENUS # enable user command menus, requires CONTEXT_MENUS ### Machine specific options (fixes or performance enhancements) ### #FEATURES += EL_BIG_ENDIAN # Enable big-endian code (automatically detected for OSX) #FEATURES += NO_PF_MACRO # Use a function instead of a macro for pf_get_tile() #FEATURES += SIMPLE_LOD # enable a simplistic distance culling to improve performance ### Debug options ### #FEATURES += CONTEXT_MENUS_TEST # Enable "#cmtest" command to help test/demo the context menu code #FEATURES += DEBUG # (undocumented) #FEATURES += DEBUG_XML # Enables missing (optional) XML string property messages #FEATURES += DEBUG_POINT_PARTICLES # (undocumented) #FEATURES += DEBUG_TIME # Fakes the acceleration of time for use in debugging shadows and the like. #FEATURES += DEBUG_MAP_SOUND # Adds (some??) map boundary areas to tab maps and additional logging to stdout #FEATURES += ECDEBUGWIN # press ctrl-alt-c to open the Eye Candy debug window: trigger most effects without casting spells or server side events #FEATURES += EXTRA_DEBUG # (undocumented) #FEATURES += MEMORY_DEBUG # gather information about memory allocation and freeing #FEATURES += MISSILES_DEBUG # Enables debug for missiles feature. It will create a file missiles_log.txt file in your settings directory. #FEATURES += MUTEX_DEBUG # (undocumented) #FEATURES += OPENGL_TRACE # make far more frequent checks for OpenGL errors (requires -DDEBUG to be of any use). Will make error_log.txt a lot larger. #FEATURES += TIMER_CHECK # (undocumented) #FEATURES += _EXTRA_SOUND_DEBUG # Enable debug for sound effects ### Other options (Experimental, unfinished, defunct or otherwise unknown) ### FEATURES += NEW_CURSOR # New coloured cursors made by Emajekral (Experimental) Extract http://users.on.net/~gingerman/sky_cursor-textures.zip into datadir/textures/ #FEATURES += NEW_LIGHTING # (undocumented) #FEATURES += PAWN # Experimental, not for release, will need server support to function properly. This *will* eat your cat. You've been warned. Enables the Pawn abstract machine. #FEATURES += UID # use unique ID sent from server for custom looks. (INCOMPLETE) FEATURES += USE_ACTORS_OPTIMIZER # Enables actor optimizations FEATURES += USE_BOOST #FEATURES += USE_TR1 # Needs tr1 version of c++ stl, used for NEW_FILE_IO #FEATURES += WRITE_XML # dangerous to use, will wipe out some XML files that are part of the main game download FEATURES += ZLIBW # Enables being able to write gzip compressed files, requires -lzlib/-lz needed for map_editor #PLATFORM=-march=i686 PLATFORM=-march=x86-64 XDIR=-L/usr/X11R6/lib CWARN=-Wall -Wdeclaration-after-statement # -Wno-pointer-sign -Wno-sign-compare -Werror CXXWARN=-Wall # -Wno-sign-compare -Werror ## These needed to be adjusted on a per system basis based on compile options & library versions ## These 2 lines should be uncommented if you used Emajekral's Windows compilation how-to (adjust them if required) #EXTRA_LIBS=-lstdc++ #EXTRA_INCLUDES=-IC:\\Dev-Cpp\\Include\\AL -IC:\\Dev-Cpp\\Include\\SDL ## These are the originally listed settings, uncomment them if you need them #EXTRA_INCLUDES=-IC:\\Programme\\Dev-Cpp\\Include #EXTRA_LIBS=-lz #EXTRA_STATICLIBS=libs/zlib.a CC=gcc CXX=g++ LINK=gcc ps. Linux Gentoo amd64 2008.0 Share this post Link to post Share on other sites
bluap Report post Posted May 25, 2009 Hi 2 all I have included some options in a make.conf FEATURES += NIGHT_TEXTURES At compilation such error: make -f Makefile.linux CC textures.o textures.c: In function 'load_texture': textures.c:1192: error: 'data' undeclared (first use in this function) textures.c:1192: error: (Each undeclared identifier is reported only once textures.c:1192: error: for each function it appears in.) make: *** [textures.o] Error 1 ... Looks like it was broken when the dds support was added. The following change appears to fix it but the code has changed significantly so I'm not sure if anything else needs to be updated. At night, the textures certainly take on a pale appearance but the loading between map changes is very high. I've never used this option before so was it like that before? Index: textures.c =================================================================== RCS file: /cvsroot/elc/elc/textures.c,v retrieving revision 1.103 diff -a -u -r1.103 textures.c --- textures.c 4 Apr 2009 23:51:21 -0000 1.103 +++ textures.c 25 May 2009 10:45:52 -0000 @@ -1189,7 +1189,7 @@ } #if defined NEW_LIGHTING || defined NIGHT_TEXTURES - do_night_shift_texture(file_name, data, tex->x_size, tex->y_size); + do_night_shift_texture(file_name, tex->texture, tex->x_size, tex->y_size); #endif #ifdef NEW_LIGHTING Share this post Link to post Share on other sites
stormzel Report post Posted May 25, 2009 To bluap , Thanks I`m fixed textures.c Now are normally compiled with an option "FEATURES += NIGHT_TEXTURES" But here one more error: FEATURES += NEW_LIGHTING CC lights.o lights.c: In function 'build_sun_pos_table': lights.c:835: error: 'd' undeclared (first use in this function) lights.c:835: error: (Each undeclared identifier is reported only once lights.c:835: error: for each function it appears in.) make: *** [lights.o] Error 1 Share this post Link to post Share on other sites
Florian Report post Posted May 25, 2009 NIGHT_TEXTURES and NEW_LIGHTING are unsupported for a while now. And I'm afraid they're obsolete due to the new engine. The high load on texture loading is normal, as some computations are done. Share this post Link to post Share on other sites
stormzel Report post Posted May 26, 2009 Good Work! Share this post Link to post Share on other sites