Wing Commander II
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
textfmt.c
Go to the documentation of this file.
1/*
2 * Formatted text output.
3 *
4 * Retail object 0x420340-0x4207AF (link order; see docs/ORDER.md).
5 */
6#include "game.h"
7
8/* Function start: 0x420340 */
9void EmitTextString(void (*writer)(int), const char *text)
10{
11 short character;
12
13 while ((character = (signed char)*text++) != 0)
14 writer((short)character);
15}
16
17/* Function start: 0x420378 */
18void FormatTextTokens(void (*writer)(int),
19 const char *format, va_list arguments)
20{
21 short spec;
22 char number[64];
23 short ch;
24
26 return;
27 while ((ch = (signed char)*format++) != 0) {
28 switch (ch) {
29 case '%':
30 spec = (signed char)*format++;
31 switch (spec) {
32 case 'd':
33 EmitTextString(writer,
34 itoa(va_arg(arguments, short), number, 10));
35 break;
36 case 'u':
38 writer,
39 ultoa(va_arg(arguments, unsigned short), number, 10));
40 break;
41 case 'D':
42 EmitTextString(writer,
43 ltoa(va_arg(arguments, long), number, 10));
44 break;
45 case 'U':
47 writer,
48 ultoa(va_arg(arguments, unsigned long), number, 10));
49 break;
50 case 'x':
52 writer,
53 strupr(ultoa(va_arg(arguments, unsigned short),
54 number, 16)));
55 break;
56 case 'c':
57 writer(va_arg(arguments, short));
58 break;
59 case 'S':
60 case 's':
61 EmitTextString(writer, va_arg(arguments, char *));
62 break;
63 case 'X':
65 va_arg(arguments, short);
66 break;
67 case 'Y':
69 va_arg(arguments, short);
70 break;
71 case 'B':
73 va_arg(arguments, unsigned char);
74 break;
75 case 'F':
77 va_arg(arguments, unsigned char);
78 break;
79 case 'P':
82 else
85 break;
86 case 'J':
88 va_arg(arguments, unsigned char);
89 break;
90 default:
91 writer(spec);
92 break;
93 }
94 break;
95 default:
96 writer(ch);
97 break;
98 }
99 }
100}
101
102/* Function start: 0x42067F */
103void DrawFormattedText(const char *format, ...)
104{
105 va_list arguments;
106
107 va_start(arguments, format);
109 FormatTextTokens((void (*)(int))DrawTextCharacter, format,
110 arguments);
111 } else {
113 format,
114 arguments);
115 }
116 va_end(arguments);
119 MarkDibDirty();
120}
121
122/* Function start: 0x4206F2 */
123void FormatTextBufferFromStart(const char *format, ...)
124{
125 va_list arguments;
126
127 va_start(arguments, format);
129 return;
132 FormatTextTokens((void (*)(int))AppendTextCharacter, format,
133 arguments);
134 va_end(arguments);
137 MarkDibDirty();
138}
139
140/* Function start: 0x42075F */
141void AppendFormattedText(const char *format, ...)
142{
143 va_list arguments;
144
145 va_start(arguments, format);
146 FormatTextTokens((void (*)(int))AppendTextCharacter, format,
147 arguments);
148 va_end(arguments);
151 MarkDibDirty();
152}
void FormatTextBufferFromStart(const char *format,...)
Definition textfmt.c:123
void EmitTextString(void(*writer)(int), const char *text)
Definition textfmt.c:9
void DrawWrappedCinematicText(char *text)
Definition text.c:40
void DrawTextString(const char *text)
Definition eventmgr.c:262
void FormatTextTokens(void(*writer)(int), const char *format, va_list arguments)
Definition textfmt.c:18
void AppendTextCharacter(char character)
Definition eventmgr.c:375
void AppendFormattedText(const char *format,...)
Definition textfmt.c:141
void DrawFormattedText(const char *format,...)
Definition textfmt.c:103
void MarkDibDirty(void)
Definition dib.cpp:532
void DrawCinematicFontCharacter(char character)
Definition text.c:9
void DrawTextCharacter(char character)
Definition eventmgr.c:348
Shared Win32 declarations, types and library interfaces.
signed char g_9_bCinematicSpriteTextEnableStatus
Definition eventmgr.c:2516
TextContext * g_29_pCurrentTextContext
Definition eventmgr.c:2563
Viewport g_101_stScrViewInfo
Definition cockpt.c:3831
unsigned char colour
Definition game.h:288
short cursorY
Definition game.h:286
char * text
Definition game.h:290
unsigned char backgroundColour
Definition game.h:289
signed char alignment
Definition game.h:292
char * textCursor
Definition game.h:291
short cursorX
Definition game.h:285
Viewport * viewport
Definition game.h:284
unsigned char * pixels
Definition game.h:150