Hide marker _ when buffer full
This commit is contained in:
parent
a9998476a9
commit
bf97634b27
|
@ -42,6 +42,7 @@ extern array<ubyte, MAX_SEGMENTS> Automap_visited;
|
|||
|
||||
#if defined(DXX_BUILD_DESCENT_II)
|
||||
#include "objnum.h"
|
||||
#include "ntstring.h"
|
||||
|
||||
struct vms_vector;
|
||||
|
||||
|
@ -51,7 +52,7 @@ window_event_result MarkerInputMessage(int key);
|
|||
|
||||
static const std::size_t NUM_MARKERS = 16;
|
||||
static const std::size_t MARKER_MESSAGE_LEN = 40;
|
||||
struct marker_message_text_t : public array<char, MARKER_MESSAGE_LEN> {};
|
||||
struct marker_message_text_t : ntstring<MARKER_MESSAGE_LEN - 1> {};
|
||||
struct marker_messages_array_t : public array<marker_message_text_t, NUM_MARKERS> {};
|
||||
|
||||
extern marker_message_text_t Marker_input;
|
||||
|
|
|
@ -1415,7 +1415,7 @@ void automap_build_edge_list(automap *am, int add_all_edges)
|
|||
}
|
||||
|
||||
#if defined(DXX_BUILD_DESCENT_II)
|
||||
int Marker_index=0;
|
||||
static unsigned Marker_index;
|
||||
ubyte DefiningMarkerMessage=0;
|
||||
ubyte MarkerBeingDefined;
|
||||
ubyte LastMarkerDropped;
|
||||
|
@ -1483,7 +1483,7 @@ window_event_result MarkerInputMessage(int key)
|
|||
{
|
||||
int ascii = key_ascii();
|
||||
if ((ascii < 255 ))
|
||||
if (Marker_index < 38 )
|
||||
if (Marker_index < Marker_input.size() - 1)
|
||||
{
|
||||
Marker_input[Marker_index++] = ascii;
|
||||
Marker_input[Marker_index] = 0;
|
||||
|
|
|
@ -76,9 +76,8 @@ static void game_draw_marker_message()
|
|||
{
|
||||
gr_set_curfont(GAME_FONT);
|
||||
gr_set_fontcolor(BM_XRGB(0,63,0),-1);
|
||||
gr_printf(0x8000, (LINE_SPACING*5)+FSPACY(1), "Marker: %s_", &Marker_input[0] );
|
||||
gr_printf(0x8000, (LINE_SPACING*5)+FSPACY(1), "Marker: %s%c", &Marker_input[0], Marker_input[Marker_input.size() - 2] ? 0 : '_');
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1128,7 +1128,8 @@ int state_save_all_sub(const char *filename, const char *desc)
|
|||
range_for (int m, MarkerObject)
|
||||
PHYSFS_write(fp, &m, sizeof(m), 1);
|
||||
PHYSFS_seek(fp, PHYSFS_tell(fp) + (NUM_MARKERS)*(CALLSIGN_LEN+1)); // PHYSFS_write(fp, MarkerOwner, sizeof(MarkerOwner), 1); MarkerOwner is obsolete
|
||||
PHYSFS_write(fp, MarkerMessage, sizeof(MarkerMessage[0]), MarkerMessage.size());
|
||||
range_for (auto &i, MarkerMessage)
|
||||
PHYSFS_write(fp, i.data(), i.size(), 1);
|
||||
|
||||
PHYSFS_write(fp, &Afterburner_charge, sizeof(fix), 1);
|
||||
|
||||
|
@ -1624,7 +1625,12 @@ int state_restore_all_sub(const char *filename, int secret_restore)
|
|||
for (i = 0; i < NUM_MARKERS; i++)
|
||||
MarkerObject[i] = PHYSFSX_readSXE32(fp, swap);
|
||||
PHYSFS_seek(fp, PHYSFS_tell(fp) + (NUM_MARKERS)*(CALLSIGN_LEN+1)); // PHYSFS_read(fp, MarkerOwner, sizeof(MarkerOwner), 1); // skip obsolete MarkerOwner
|
||||
PHYSFS_read(fp, MarkerMessage, sizeof(MarkerMessage[0]), MarkerMessage.size());
|
||||
range_for (auto &i, MarkerMessage)
|
||||
{
|
||||
array<char, MARKER_MESSAGE_LEN> a;
|
||||
PHYSFS_read(fp, a.data(), a.size(), 1);
|
||||
i.copy_if(a);
|
||||
}
|
||||
}
|
||||
else {
|
||||
int num;
|
||||
|
|
Loading…
Reference in a new issue