View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002372 | FSSCP | tables | public | 2011-01-07 17:18 | 2012-11-19 15:25 |
Reporter | Fury | Assigned To | The_E | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | Antipodes 8 | ||||
Fixed in Version | 3.6.13 | ||||
Summary | 0002372: +Description broken in ships.tbl | ||||
Description | No idea if it has ever worked, but it's broken now. Example: $Name: GTF Myrmidon +nocreate +Description: XSTR(" insert bunch of text here ", -1 ) $end_multi_text Produces exactly jack squat on ship's loadout display. | ||||
Tags | No tags attached. | ||||
|
Fixed in revision 6969 |
|
Well this fix breaks multiplayer and the description is not like broke correctly resulting in a possible second assert for MAX_NUM_SHIP_DESC_LINES being exceeded. This one happens in both single and multi. Example: +Description: XSTR("test description", -1) $end_multi_text results in: test descr iption +Description: XSTR("A much longer test description of this ship to see what happens", -1) $end_multi_text results in the assert. I'll attach a diff that seems to work around the first multi problem. |
2011-01-29 23:50
|
mantis_2372.patch (2,901 bytes)
Index: multiteamselect.cpp =================================================================== --- multiteamselect.cpp (revision 6979) +++ multiteamselect.cpp (working copy) @@ -2625,40 +2625,43 @@ // split the text info up Assert(Multi_ts_select_ship_class >= 0); - Assert((Ship_info[Multi_ts_select_ship_class].desc != NULL) && strlen(Ship_info[Multi_ts_select_ship_class].desc)); +// Assert((Ship_info[Multi_ts_select_ship_class].desc != NULL) && strlen(Ship_info[Multi_ts_select_ship_class].desc)); + if (Ship_info[Multi_ts_select_ship_class].desc != NULL) + { - // strip out newlines - memset(ship_desc,0,1000); - strcpy_s(ship_desc,Ship_info[Multi_ts_select_ship_class].desc); - token = strtok(ship_desc,"\n"); - if(token != NULL){ - strcpy_s(Multi_ts_ship_info_text,token); - while(token != NULL){ - token = strtok(NULL,"\n"); - if(token != NULL){ - strcat_s(Multi_ts_ship_info_text," "); - strcat_s(Multi_ts_ship_info_text,token); + // strip out newlines + memset(ship_desc,0,1000); + strcpy_s(ship_desc,Ship_info[Multi_ts_select_ship_class].desc); + token = strtok(ship_desc,"\n"); + if(token != NULL){ + strcpy_s(Multi_ts_ship_info_text,token); + while(token != NULL){ + token = strtok(NULL,"\n"); + if(token != NULL){ + strcat_s(Multi_ts_ship_info_text," "); + strcat_s(Multi_ts_ship_info_text,token); + } } } - } - if(strlen(Multi_ts_ship_info_text) > 0){ - // split the string into multiple lines - n_lines = split_str(Multi_ts_ship_info_text, Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_W_COORD], n_chars, p_str, MULTI_TS_SHIP_INFO_MAX_LINES, 0); + if(strlen(Multi_ts_ship_info_text) > 0){ + // split the string into multiple lines + n_lines = split_str(Multi_ts_ship_info_text, Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_W_COORD], n_chars, p_str, MULTI_TS_SHIP_INFO_MAX_LINES, 0); - // copy the split up lines into the text lines array - for (int idx = 0;idx<n_lines;idx++ ) { - Assert(n_chars[idx] < MULTI_TS_SHIP_INFO_MAX_LINE_LEN); - strncpy(Multi_ts_ship_info_lines[idx], p_str[idx], n_chars[idx]); - Multi_ts_ship_info_lines[idx][n_chars[idx]] = 0; - drop_leading_white_space(Multi_ts_ship_info_lines[idx]); + // copy the split up lines into the text lines array + for (int idx = 0;idx<n_lines;idx++ ) { + Assert(n_chars[idx] < MULTI_TS_SHIP_INFO_MAX_LINE_LEN); + strncpy(Multi_ts_ship_info_lines[idx], p_str[idx], n_chars[idx]); + Multi_ts_ship_info_lines[idx][n_chars[idx]] = 0; + drop_leading_white_space(Multi_ts_ship_info_lines[idx]); + } + + // get the line count + Multi_ts_ship_info_line_count = n_lines; + } else { + // set the line count to + Multi_ts_ship_info_line_count = 0; } - - // get the line count - Multi_ts_ship_info_line_count = n_lines; - } else { - // set the line count to - Multi_ts_ship_info_line_count = 0; } } |
|
Apparently this patch was committed in 7002. Is there anything still broken mentioned in this ticket? |
|
Tested with the above snippets. No Assert reached. The second +Description entry did lead to a bit of a text area over draw in the interface though: http://img713.imageshack.us/img713/7347/descriptiontest.png Additionally, when setting up for the second +Description test, I accidentally forgot to include the "$end_multi_text" which did not result in any pop-up warnings, but did lead to this easily missed entry in the log: "Error. Too much text (28553 chars, 4096 allowed) before $end_multi_text" Build test: Antipodes 8370 build. |
|
Closing then if no other complaints. |
|
Resolving as it was apparently fixed by The E, twice. |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-01-07 17:18 | Fury | New Issue | |
2011-01-23 21:19 | The_E | Note Added: 0012610 | |
2011-01-23 21:20 | The_E | Status | new => resolved |
2011-01-23 21:20 | The_E | Fixed in Version | => 3.6.13 |
2011-01-23 21:20 | The_E | Resolution | open => fixed |
2011-01-23 21:20 | The_E | Assigned To | => The_E |
2011-01-29 23:45 | FUBAR-BDHR | Note Added: 0012617 | |
2011-01-29 23:45 | FUBAR-BDHR | Status | resolved => feedback |
2011-01-29 23:45 | FUBAR-BDHR | Resolution | fixed => reopened |
2011-01-29 23:50 | FUBAR-BDHR | File Added: mantis_2372.patch | |
2012-01-27 22:10 | chief1983 | Note Added: 0013170 | |
2012-01-28 06:47 | Zacam | Note Added: 0013174 | |
2012-10-27 11:24 | The_E | Assigned To | The_E => |
2012-10-31 20:30 | chief1983 | Note Added: 0014008 | |
2012-11-19 15:25 | Goober5000 | Note Added: 0014077 | |
2012-11-19 15:25 | Goober5000 | Assigned To | => The_E |
2012-11-19 15:25 | Goober5000 | Status | feedback => resolved |
2012-11-19 15:25 | Goober5000 | Resolution | reopened => fixed |