View Issue Details

IDProjectCategoryView StatusLast Update
0000450FSSCPmultiplayerpublic2005-11-05 08:00
ReporterWMCoolmon Assigned ToWMCoolmon  
PrioritynormalSeverityminorReproducibilityN/A
Status resolvedResolutionfixed 
Summary0000450: get_max_shield_quad used on ghost objects
DescriptionI'm not sure what the retail behavior of this function was, but in multiplayer, it seems to get called if/when the player has died and a packet indicates a shield update is needed.
Additional InformationAssert: objp->type == OBJ_SHIP
File: e:\cvs\fs2_open\code\object\object.cpp
Line: 781
[This filename points to the location of a file on the computer that built this executable]

Call stack:
------------------------------------------------------------------
    fs2_open_ex_d.exe 00956da5()
    fs2_open_ex_d.exe 008546fc()
    fs2_open_ex_d.exe 00854f7c()
    fs2_open_ex_d.exe 008553c1()
    fs2_open_ex_d.exe 008559cc()
    fs2_open_ex_d.exe 006969ec()
    fs2_open_ex_d.exe 006a52cc()
    fs2_open_ex_d.exe 006a5383()
    fs2_open_ex_d.exe 00857d31()
    fs2_open_ex_d.exe 006a6ae6()
    fs2_open_ex_d.exe 006a6cdc()
    fs2_open_ex_d.exe 00ad5e87()
    KERNEL32.DLL 7c59893d()
------------------------------------------------------------------

     fs2_open_ex_d.exe!debug_int3() Line 896 C++
     fs2_open_ex_d.exe!WinAssert(char * text=0x00b8f648, char * filename=0x00b93530, int linenum=781) Line 978 C++
     fs2_open_ex_d.exe!get_max_shield_quad(object * objp=0x01cbda7c) Line 781 + 0x2e C++
> fs2_open_ex_d.exe!process_client_update_packet(unsigned char * data=0x02bd82db, header * hinfo=0x0012ec30) Line 7403 + 0x2c C++
     fs2_open_ex_d.exe!process_packet_normal(unsigned char * data=0x02bd82db, header * header_info=0x0012ec30) Line 1122 + 0xd C++
     fs2_open_ex_d.exe!multi_process_bigdata(unsigned char * data=0x02bd8228, int len=217, net_addr * from_addr=0x0012ed64, int reliable=0) Line 1269 + 0xd C++
     fs2_open_ex_d.exe!multi_process_incoming() Line 1366 + 0x13 C++
     fs2_open_ex_d.exe!multi_do_frame() Line 1554 C++
     fs2_open_ex_d.exe!game_do_networking() Line 2325 C++
     fs2_open_ex_d.exe!game_do_state_common(int state=20, int no_networking=0) Line 7913 C++
     fs2_open_ex_d.exe!game_do_state(int state=20) Line 7926 + 0xb C++
     fs2_open_ex_d.exe!gameseq_process_events() Line 657 + 0x14 C++
     fs2_open_ex_d.exe!WinMainSub(HINSTANCE__ * hInst=0x00400000, HINSTANCE__ * hPrev=0x00000000, char * szCmdLine=0x00133720, int nCmdShow=1) Line 8605 + 0x5 C++
     fs2_open_ex_d.exe!WinMain(HINSTANCE__ * hInst=0x00400000, HINSTANCE__ * hPrev=0x00000000, char * szCmdLine=0x00133720, int nCmdShow=1) Line 8654 + 0x15 C++
     fs2_open_ex_d.exe!WinMainCRTStartup() Line 251 + 0x30 C
     KERNEL32.DLL!7c59893d()



*****************************
- objp 0x01cbda7c {next=0x01cbdc88 {next=0x01cbde94 {next=0x01cbe0a0 {next=0x01cbe2ac prev=0x01cbde94 signature=7 ...} prev=0x01cbdc88 {next=0x01cbde94 prev=0x01cbda7c signature=5 ...} signature=6 ...} prev=0x01cbda7c {next=0x01cbdc88 {next=0x01cbde94 prev=0x01cbda7c signature=5 ...} prev=0x01cbd870 {next=0x01cbda7c prev=0x01cbd664 signature=3 ...} signature=4 ...} signature=5 ...} prev=0x01cbd870 {next=0x01cbda7c {next=0x01cbdc88 {next=0x01cbde94 prev=0x01cbda7c signature=5 ...} prev=0x01cbd870 {next=0x01cbda7c prev=0x01cbd664 signature=3 ...} signature=4 ...} prev=0x01cbd664 {next=0x01cbd870 {next=0x01cbda7c prev=0x01cbd664 signature=3 ...} prev=0x01cbd458 struct object * Objects signature=2 ...} signature=3 ...} signature=4 ...} object *
+ next 0x01cbdc88 {next=0x01cbde94 {next=0x01cbe0a0 {next=0x01cbe2ac {next=0x01ccf0dc prev=0x01cbe0a0 signature=8 ...} prev=0x01cbde94 {next=0x01cbe0a0 prev=0x01cbdc88 signature=6 ...} signature=7 ...} prev=0x01cbdc88 {next=0x01cbde94 {next=0x01cbe0a0 prev=0x01cbdc88 signature=6 ...} prev=0x01cbda7c {next=0x01cbdc88 prev=0x01cbd870 signature=4 ...} signature=5 ...} signature=6 ...} prev=0x01cbda7c {next=0x01cbdc88 {next=0x01cbde94 {next=0x01cbe0a0 prev=0x01cbdc88 signature=6 ...} prev=0x01cbda7c {next=0x01cbdc88 prev=0x01cbd870 signature=4 ...} signature=5 ...} prev=0x01cbd870 {next=0x01cbda7c {next=0x01cbdc88 prev=0x01cbd870 signature=4 ...} prev=0x01cbd664 {next=0x01cbd870 prev=0x01cbd458 signature=2 ...} signature=3 ...} signature=4 ...} signature=5 ...} object *
+ prev 0x01cbd870 {next=0x01cbda7c {next=0x01cbdc88 {next=0x01cbde94 {next=0x01cbe0a0 prev=0x01cbdc88 signature=6 ...} prev=0x01cbda7c {next=0x01cbdc88 prev=0x01cbd870 signature=4 ...} signature=5 ...} prev=0x01cbd870 {next=0x01cbda7c {next=0x01cbdc88 prev=0x01cbd870 signature=4 ...} prev=0x01cbd664 {next=0x01cbd870 prev=0x01cbd458 signature=2 ...} signature=3 ...} signature=4 ...} prev=0x01cbd664 {next=0x01cbd870 {next=0x01cbda7c {next=0x01cbdc88 prev=0x01cbd870 signature=4 ...} prev=0x01cbd664 {next=0x01cbd870 prev=0x01cbd458 signature=2 ...} signature=3 ...} prev=0x01cbd458 struct object * Objects signature=2 ...} signature=3 ...} object *
    signature 4 int
    type 8 '␈' char
    parent -1 int
    parent_sig 4 int
    parent_type 1 '␁' char
    instance 3 int
    flags 3143 unsigned int
+ pos {xyz={x=578.96930 y=407.62234 z=85.857925 } a1d=0x01cbdaa0 } vec3d
+ orient {vec={rvec={xyz={x=-0.54270244 y=0.38209841 z=0.74798054 } a1d=0x01cbdaac } uvec={xyz={x=-0.52159268 y=-0.85132545 z=0.056445967 } a1d=0x01cbdab8 } fvec={xyz={x=0.65834278 y=-0.35950780 z=0.66131616 } a1d=0x01cbdac4 } } a2d=0x01cbdaac a1d=0x01cbdaac } matrix
    radius 12.293412 float
+ last_pos {xyz={x=578.96906 y=407.62228 z=85.858047 } a1d=0x01cbdad4 } vec3d
+ last_orient {vec={rvec={xyz={x=-0.54270244 y=0.38209841 z=0.74798054 } a1d=0x01cbdae0 } uvec={xyz={x=-0.52159268 y=-0.85132545 z=0.056445967 } a1d=0x01cbdaec } fvec={xyz={x=0.65834278 y=-0.35950780 z=0.66131616 } a1d=0x01cbdaf8 } } a2d=0x01cbdae0 a1d=0x01cbdae0 } matrix
+ phys_info {flags=0 mass=10.000000 center_of_mass={xyz={x=0.00000000 y=0.00000000 z=0.00000000 } a1d=0x01cbdb0c } ...} physics_info
+ shield_quadrant 0x01cbdc24 float [4]
    hull_strength 290.00000 float
+ objsnd_num 0x01cbdc38 short [32]
    net_signature 47 unsigned short
    num_pairs 3 int
+ jnp 0x00000000 {m_name=0x0000000c <Bad Ptr> m_modelnum=??? m_objnum=??? ...} jump_node *
+ dock_list 0x00000000 {next=??? dockpoint_used=??? docked_objp=??? } dock_instance *
TagsNo tags attached.

Activities

WMCoolmon

2005-11-05 08:00

developer   ~0003758

Decided to hack in a fix; the function will now return 0.0f if a non-ship is passed.

Issue History

Date Modified Username Field Change
2005-06-08 03:50 WMCoolmon New Issue
2005-11-05 08:00 WMCoolmon Status new => resolved
2005-11-05 08:00 WMCoolmon Resolution open => fixed
2005-11-05 08:00 WMCoolmon Assigned To => WMCoolmon
2005-11-05 08:00 WMCoolmon Note Added: 0003758