author | rubidium |
Sun, 25 May 2008 19:17:03 +0000 | |
changeset 9354 | 845e07db4549 |
parent 9336 | 6baad5b3033d |
child 9413 | 7042a8ec3fa8 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
9111
48ce04029fe4
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents:
9005
diff
changeset
|
3 |
/** @file texteff.cpp Handling of text effects. */ |
6422
6679df1c05ba
(svn r9558) -Documentation: doxygen and comment changes: 'T' now. Almost done
belugas
parents:
6374
diff
changeset
|
4 |
|
0 | 5 |
#include "stdafx.h" |
1891
862800791170
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1881
diff
changeset
|
6 |
#include "openttd.h" |
6453
226bcddeba32
(svn r9609) -Codechange: Move some function prototypes out of functions.h and into landscape.h, and add a few where they didn't exist.
maedhros
parents:
6422
diff
changeset
|
7 |
#include "landscape.h" |
8225
cd84a95b6630
(svn r11788) -Fix (11787): makedepend doesn't mark delete files as changed...
rubidium
parents:
8214
diff
changeset
|
8 |
#include "gfx_func.h" |
9336 | 9 |
#include "console_func.h" |
2153
ecfc674410b4
(svn r2663) Include variables.h only in these files which need it, not globally via openttd.h
tron
parents:
2062
diff
changeset
|
10 |
#include "variables.h" |
6937
40c760fcf1f6
(svn r10190) -Codechange: merged renderer and blitter to one single class API: blitter
truelight
parents:
6878
diff
changeset
|
11 |
#include "blitter/factory.hpp" |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
12 |
#include "texteff.hpp" |
7170
923946ec324f
(svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents:
7006
diff
changeset
|
13 |
#include "video/video_driver.hpp" |
7849
0a1c0af2c96c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
belugas
parents:
7749
diff
changeset
|
14 |
#include "transparency.h" |
8114
dd6d21dc99c1
(svn r11675) -Codechange: split the string types from the string functions.
rubidium
parents:
8113
diff
changeset
|
15 |
#include "strings_func.h" |
8130
d2eb7d04f6e1
(svn r11691) -Codechange: move+rename helpers.hpp and only include it when it is really needed.
rubidium
parents:
8121
diff
changeset
|
16 |
#include "core/alloc_func.hpp" |
8140
0d0d8c94f84b
(svn r11702) -Codechange: move all date related stuff to date*.
rubidium
parents:
8131
diff
changeset
|
17 |
#include "date_func.h" |
8131
160939e24ed3
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium
parents:
8130
diff
changeset
|
18 |
#include "functions.h" |
8225
cd84a95b6630
(svn r11788) -Fix (11787): makedepend doesn't mark delete files as changed...
rubidium
parents:
8214
diff
changeset
|
19 |
#include "viewport_func.h" |
8270
e7c342f6b14c
(svn r11834) -Codechange: only include settings_type.h if needed.
rubidium
parents:
8264
diff
changeset
|
20 |
#include "settings_type.h" |
0 | 21 |
|
8264
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8225
diff
changeset
|
22 |
#include "table/sprites.h" |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8225
diff
changeset
|
23 |
|
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8225
diff
changeset
|
24 |
#include <stdarg.h> /* va_list */ |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8225
diff
changeset
|
25 |
|
5428
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
26 |
enum { |
6215
bbd141b026b5
(svn r9012) -Fix/Feature (UTF8): When cutting strings into multiple lines also take into consideration whitespace characters of more than 1 byte length (eg IDEOGRAPHIC SPACE, IsWhitespace() function). When trimming such strings, account for multiple-byte long sequences so use *Utf8PrevChar(v) = '\0'.
Darkvater
parents:
5668
diff
changeset
|
27 |
MAX_TEXTMESSAGE_LENGTH = 200, |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
28 |
INIT_NUM_TEXT_MESSAGES = 20, |
5428
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
29 |
MAX_CHAT_MESSAGES = 10, |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
30 |
}; |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
31 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
32 |
struct TextEffect { |
0 | 33 |
StringID string_id; |
849
c3407041774f
(svn r1330) Increase size of some vars from int16 to int32 to guard against future overflows
tron
parents:
835
diff
changeset
|
34 |
int32 x; |
c3407041774f
(svn r1330) Increase size of some vars from int16 to int32 to guard against future overflows
tron
parents:
835
diff
changeset
|
35 |
int32 y; |
c3407041774f
(svn r1330) Increase size of some vars from int16 to int32 to guard against future overflows
tron
parents:
835
diff
changeset
|
36 |
int32 right; |
c3407041774f
(svn r1330) Increase size of some vars from int16 to int32 to guard against future overflows
tron
parents:
835
diff
changeset
|
37 |
int32 bottom; |
0 | 38 |
uint16 duration; |
7006
bfa3974da32b
(svn r10262) -Fix (r10258): some places that needed to be changed to uint64 were hidden/forgotten, which caused memory corruptions and that in caused all kinds of assertions to trigger.
rubidium
parents:
6998
diff
changeset
|
39 |
uint64 params_1; |
bfa3974da32b
(svn r10262) -Fix (r10258): some places that needed to be changed to uint64 were hidden/forgotten, which caused memory corruptions and that in caused all kinds of assertions to trigger.
rubidium
parents:
6998
diff
changeset
|
40 |
uint64 params_2; |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
41 |
TextEffectMode mode; |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
42 |
}; |
0 | 43 |
|
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
44 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
45 |
struct ChatMessage { |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
46 |
char message[MAX_TEXTMESSAGE_LENGTH]; |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
47 |
uint16 color; |
4363
8a38cd70dab9
(svn r6078) -Fix: forgot one uint16 -> Date conversion. Tnx to #openttdcoop team for detecting and Rubidium for finding the cause.
truelight
parents:
4261
diff
changeset
|
48 |
Date end_date; |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
49 |
}; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
50 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
51 |
/* used for text effects */ |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
52 |
static TextEffect *_text_effect_list = NULL; |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
53 |
static uint16 _num_text_effects = INIT_NUM_TEXT_MESSAGES; |
0 | 54 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
55 |
/* used for chat window */ |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
56 |
static ChatMessage _chatmsg_list[MAX_CHAT_MESSAGES]; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
57 |
static bool _chatmessage_dirty = false; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
58 |
static bool _chatmessage_visible = false; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
59 |
|
4956
49ecd2a36222
(svn r6955) -Codechange: Change some variable names for _textmessage_box, and replace 5 different
Darkvater
parents:
4912
diff
changeset
|
60 |
/* The chatbox grows from the bottom so the coordinates are pixels from |
49ecd2a36222
(svn r6955) -Codechange: Change some variable names for _textmessage_box, and replace 5 different
Darkvater
parents:
4912
diff
changeset
|
61 |
* the left and pixels from the bottom. The height is the maximum height */ |
8121
3bc6351e7369
(svn r11682) -Codechange: move some 'generic' geometry related types into a single file and do not include gfx.h everywhere to get a Point type.
rubidium
parents:
8119
diff
changeset
|
62 |
static const PointDimension _chatmsg_box = {10, 30, 500, 150}; |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
63 |
static uint8 _chatmessage_backup[150 * 500 * 6]; // (height * width) |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
64 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
65 |
static inline uint GetChatMessageCount() |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
66 |
{ |
4959
9a25901ce3e6
(svn r6958) -Fix (r6956): GCC warning (thx Tron) and a coding style forgotten in r6957
Darkvater
parents:
4958
diff
changeset
|
67 |
uint i; |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
68 |
|
4959
9a25901ce3e6
(svn r6958) -Fix (r6956): GCC warning (thx Tron) and a coding style forgotten in r6957
Darkvater
parents:
4958
diff
changeset
|
69 |
for (i = 0; i < MAX_CHAT_MESSAGES; i++) { |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
70 |
if (_chatmsg_list[i].message[0] == '\0') break; |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
71 |
} |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
72 |
|
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
73 |
return i; |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
74 |
} |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
75 |
|
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
76 |
/* Add a text message to the 'chat window' to be shown |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
77 |
* @param color The colour this message is to be shown in |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
78 |
* @param duration The duration of the chat message in game-days |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
79 |
* @param message message itself in printf() style */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
80 |
void CDECL AddChatMessage(uint16 color, uint8 duration, const char *message, ...) |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
81 |
{ |
2455 | 82 |
char buf[MAX_TEXTMESSAGE_LENGTH]; |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
83 |
const char *bufp; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
84 |
va_list va; |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
85 |
uint msg_count; |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
86 |
uint16 lines; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
87 |
|
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
88 |
va_start(va, message); |
2373
e073ec69bf56
(svn r2899) -Fix: Several format string vulnerabilities and buffer overflows in the network code
tron
parents:
2295
diff
changeset
|
89 |
vsnprintf(buf, lengthof(buf), message, va); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
90 |
va_end(va); |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
91 |
|
6215
bbd141b026b5
(svn r9012) -Fix/Feature (UTF8): When cutting strings into multiple lines also take into consideration whitespace characters of more than 1 byte length (eg IDEOGRAPHIC SPACE, IsWhitespace() function). When trimming such strings, account for multiple-byte long sequences so use *Utf8PrevChar(v) = '\0'.
Darkvater
parents:
5668
diff
changeset
|
92 |
|
bbd141b026b5
(svn r9012) -Fix/Feature (UTF8): When cutting strings into multiple lines also take into consideration whitespace characters of more than 1 byte length (eg IDEOGRAPHIC SPACE, IsWhitespace() function). When trimming such strings, account for multiple-byte long sequences so use *Utf8PrevChar(v) = '\0'.
Darkvater
parents:
5668
diff
changeset
|
93 |
Utf8TrimString(buf, MAX_TEXTMESSAGE_LENGTH); |
bbd141b026b5
(svn r9012) -Fix/Feature (UTF8): When cutting strings into multiple lines also take into consideration whitespace characters of more than 1 byte length (eg IDEOGRAPHIC SPACE, IsWhitespace() function). When trimming such strings, account for multiple-byte long sequences so use *Utf8PrevChar(v) = '\0'.
Darkvater
parents:
5668
diff
changeset
|
94 |
|
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
95 |
/* Force linebreaks for strings that are too long */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
96 |
lines = GB(FormatStringLinebreaks(buf, _chatmsg_box.width - 8), 0, 16) + 1; |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
97 |
if (lines >= MAX_CHAT_MESSAGES) return; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
98 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
99 |
msg_count = GetChatMessageCount(); |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
100 |
/* We want to add more chat messages than there is free space for, remove 'old' */ |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
101 |
if (lines > MAX_CHAT_MESSAGES - msg_count) { |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
102 |
int i = lines - (MAX_CHAT_MESSAGES - msg_count); |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
103 |
memmove(&_chatmsg_list[0], &_chatmsg_list[i], sizeof(_chatmsg_list[0]) * (msg_count - i)); |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
104 |
msg_count = MAX_CHAT_MESSAGES - lines; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
105 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
106 |
|
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
107 |
for (bufp = buf; lines != 0; lines--) { |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
108 |
ChatMessage *cmsg = &_chatmsg_list[msg_count++]; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
109 |
ttd_strlcpy(cmsg->message, bufp, sizeof(cmsg->message)); |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
110 |
|
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
111 |
/* The default colour for a message is player colour. Replace this with |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
112 |
* white for any additional lines */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
113 |
cmsg->color = (bufp == buf && color & IS_PALETTE_COLOR) ? color : (0x1D - 15) | IS_PALETTE_COLOR; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
114 |
cmsg->end_date = _date + duration; |
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
115 |
|
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
116 |
bufp += strlen(bufp) + 1; // jump to 'next line' in the formatted string |
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
117 |
} |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
118 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
119 |
_chatmessage_dirty = true; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
120 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
121 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
122 |
void InitChatMessage() |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
123 |
{ |
2639 | 124 |
uint i; |
125 |
||
126 |
for (i = 0; i < MAX_CHAT_MESSAGES; i++) { |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
127 |
_chatmsg_list[i].message[0] = '\0'; |
2639 | 128 |
} |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
129 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
130 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
131 |
/** Hide the chatbox */ |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
132 |
void UndrawChatMessage() |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
133 |
{ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
134 |
if (_chatmessage_visible) { |
6937
40c760fcf1f6
(svn r10190) -Codechange: merged renderer and blitter to one single class API: blitter
truelight
parents:
6878
diff
changeset
|
135 |
Blitter *blitter = BlitterFactoryBase::GetCurrentBlitter(); |
5428
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
136 |
/* Sometimes we also need to hide the cursor |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
137 |
* This is because both textmessage and the cursor take a shot of the |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
138 |
* screen before drawing. |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
139 |
* Now the textmessage takes his shot and paints his data before the cursor |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
140 |
* does, so in the shot of the cursor is the screen-data of the textmessage |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
141 |
* included when the cursor hangs somewhere over the textmessage. To |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
142 |
* avoid wrong repaints, we undraw the cursor in that case, and everything |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
143 |
* looks nicely ;) |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
144 |
* (and now hope this story above makes sense to you ;)) |
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
145 |
*/ |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
146 |
|
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
147 |
if (_cursor.visible) { |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
148 |
if (_cursor.draw_pos.x + _cursor.draw_size.x >= _chatmsg_box.x && |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
149 |
_cursor.draw_pos.x <= _chatmsg_box.x + _chatmsg_box.width && |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
150 |
_cursor.draw_pos.y + _cursor.draw_size.y >= _screen.height - _chatmsg_box.y - _chatmsg_box.height && |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
151 |
_cursor.draw_pos.y <= _screen.height - _chatmsg_box.y) { |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
152 |
UndrawMouseCursor(); |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
153 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
154 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
155 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
156 |
int x = _chatmsg_box.x; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
157 |
int y = _screen.height - _chatmsg_box.y - _chatmsg_box.height; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
158 |
int width = _chatmsg_box.width; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
159 |
int height = _chatmsg_box.height; |
6366
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
160 |
if (y < 0) { |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
161 |
height = max(height + y, min(_chatmsg_box.height, _screen.height)); |
6366
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
162 |
y = 0; |
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
163 |
} |
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
164 |
if (x + width >= _screen.width) { |
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
165 |
width = _screen.width - x; |
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
166 |
} |
6374
0de6e30b49db
(svn r9437) -Fix (r9420): dedicated server crashed when the y part of the resolution was less than 10.
rubidium
parents:
6366
diff
changeset
|
167 |
if (width <= 0 || height <= 0) return; |
6366
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
168 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
169 |
_chatmessage_visible = false; |
5428
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
170 |
/* Put our 'shot' back to the screen */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
171 |
blitter->CopyFromBuffer(blitter->MoveTo(_screen.dst_ptr, x, y), _chatmessage_backup, width, height); |
5428
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
172 |
/* And make sure it is updated next time */ |
7170
923946ec324f
(svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents:
7006
diff
changeset
|
173 |
_video_driver->MakeDirty(x, y, width, height); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
174 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
175 |
_chatmessage_dirty = true; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
176 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
177 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
178 |
|
6422
6679df1c05ba
(svn r9558) -Documentation: doxygen and comment changes: 'T' now. Almost done
belugas
parents:
6374
diff
changeset
|
179 |
/** Check if a message is expired every day */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
180 |
void ChatMessageDailyLoop() |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
181 |
{ |
2639 | 182 |
uint i; |
183 |
||
1595
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
184 |
for (i = 0; i < MAX_CHAT_MESSAGES; i++) { |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
185 |
ChatMessage *cmsg = &_chatmsg_list[i]; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
186 |
if (cmsg->message[0] == '\0') continue; |
1595
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
187 |
|
4957
44b747809879
(svn r6956) -Feature: Increase the chatbuffer of chat messages. Messages longer than the allocated
Darkvater
parents:
4956
diff
changeset
|
188 |
/* Message has expired, remove from the list */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
189 |
if (cmsg->end_date < _date) { |
1595
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
190 |
/* Move the remaining messages over the current message */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
191 |
if (i != MAX_CHAT_MESSAGES - 1) memmove(cmsg, cmsg + 1, sizeof(*cmsg) * (MAX_CHAT_MESSAGES - i - 1)); |
1595
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
192 |
|
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
193 |
/* Mark the last item as empty */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
194 |
_chatmsg_list[MAX_CHAT_MESSAGES - 1].message[0] = '\0'; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
195 |
_chatmessage_dirty = true; |
1595
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
196 |
|
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
197 |
/* Go one item back, because we moved the array 1 to the left */ |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
198 |
i--; |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
199 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
200 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
201 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
202 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
203 |
/** Draw the chat message-box */ |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
204 |
void DrawChatMessage() |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
205 |
{ |
6937
40c760fcf1f6
(svn r10190) -Codechange: merged renderer and blitter to one single class API: blitter
truelight
parents:
6878
diff
changeset
|
206 |
Blitter *blitter = BlitterFactoryBase::GetCurrentBlitter(); |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
207 |
if (!_chatmessage_dirty) return; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
208 |
|
5428
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
209 |
/* First undraw if needed */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
210 |
UndrawChatMessage(); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
211 |
|
4959
9a25901ce3e6
(svn r6958) -Fix (r6956): GCC warning (thx Tron) and a coding style forgotten in r6957
Darkvater
parents:
4958
diff
changeset
|
212 |
if (_iconsole_mode == ICONSOLE_FULL) return; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
213 |
|
1595
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
214 |
/* Check if we have anything to draw at all */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
215 |
uint count = GetChatMessageCount(); |
4960
92987006dcca
(svn r6959) -Codechange: Move GfxFillRect() out of the chat-message drawing loop since we already
Darkvater
parents:
4959
diff
changeset
|
216 |
if (count == 0) return; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
217 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
218 |
int x = _chatmsg_box.x; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
219 |
int y = _screen.height - _chatmsg_box.y - _chatmsg_box.height; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
220 |
int width = _chatmsg_box.width; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
221 |
int height = _chatmsg_box.height; |
6366
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
222 |
if (y < 0) { |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
223 |
height = max(height + y, min(_chatmsg_box.height, _screen.height)); |
6366
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
224 |
y = 0; |
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
225 |
} |
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
226 |
if (x + width >= _screen.width) { |
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
227 |
width = _screen.width - x; |
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
228 |
} |
6374
0de6e30b49db
(svn r9437) -Fix (r9420): dedicated server crashed when the y part of the resolution was less than 10.
rubidium
parents:
6366
diff
changeset
|
229 |
if (width <= 0 || height <= 0) return; |
0de6e30b49db
(svn r9437) -Fix (r9420): dedicated server crashed when the y part of the resolution was less than 10.
rubidium
parents:
6366
diff
changeset
|
230 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
231 |
assert(blitter->BufferSize(width, height) < (int)sizeof(_chatmessage_backup)); |
6985
d50d59dca7c1
(svn r10241) -Codechange: CopyToBuffer now produces a buffer that is unreadable from outside the blitter, so the blitter can store anything he likes
truelight
parents:
6937
diff
changeset
|
232 |
|
5428
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
233 |
/* Make a copy of the screen as it is before painting (for undraw) */ |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
234 |
blitter->CopyToBuffer(blitter->MoveTo(_screen.dst_ptr, x, y), _chatmessage_backup, width, height); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
235 |
|
4960
92987006dcca
(svn r6959) -Codechange: Move GfxFillRect() out of the chat-message drawing loop since we already
Darkvater
parents:
4959
diff
changeset
|
236 |
_cur_dpi = &_screen; // switch to _screen painting |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
237 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
238 |
/* Paint a half-transparent box behind the chat messages */ |
4960
92987006dcca
(svn r6959) -Codechange: Move GfxFillRect() out of the chat-message drawing loop since we already
Darkvater
parents:
4959
diff
changeset
|
239 |
GfxFillRect( |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
240 |
_chatmsg_box.x, |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
241 |
_screen.height - _chatmsg_box.y - count * 13 - 2, |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
242 |
_chatmsg_box.x + _chatmsg_box.width - 1, |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
243 |
_screen.height - _chatmsg_box.y - 2, |
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5587
diff
changeset
|
244 |
PALETTE_TO_TRANSPARENT | (1 << USE_COLORTABLE) // black, but with some alpha for background |
4960
92987006dcca
(svn r6959) -Codechange: Move GfxFillRect() out of the chat-message drawing loop since we already
Darkvater
parents:
4959
diff
changeset
|
245 |
); |
1595
fda318dddab5
(svn r2099) -Fix: no longer chat-messages hang when the game wraps around 2090
truelight
parents:
1569
diff
changeset
|
246 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
247 |
/* Paint the chat messages starting with the lowest at the bottom */ |
6366
155956db09e9
(svn r9420) -Fix [FS#701]: crashes when the chatbox would be drawn outside of the main window.
rubidium
parents:
6248
diff
changeset
|
248 |
for (uint y = 13; count-- != 0; y += 13) { |
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
249 |
DoDrawString(_chatmsg_list[count].message, _chatmsg_box.x + 3, _screen.height - _chatmsg_box.y - y + 1, _chatmsg_list[count].color); |
6492
286a52449b54
(svn r9673) -Cleanup: remove spaces before tabs and replace non-indenting tabs with spaces.
rubidium
parents:
6453
diff
changeset
|
250 |
} |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
251 |
|
5428
00fab4aeff78
(svn r7632) -Codechange: several small code cleanups of texteff, like moving magic values and defines to an enum and fix coding/documentation style.
rubidium
parents:
5427
diff
changeset
|
252 |
/* Make sure the data is updated next flush */ |
7170
923946ec324f
(svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents:
7006
diff
changeset
|
253 |
_video_driver->MakeDirty(x, y, width, height); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
254 |
|
7454
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
255 |
_chatmessage_visible = true; |
e55eea8c05c7
(svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables.
rubidium
parents:
7170
diff
changeset
|
256 |
_chatmessage_dirty = false; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
257 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
534
diff
changeset
|
258 |
|
7545
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
259 |
/* Text Effects */ |
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
260 |
/** |
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
261 |
* Mark the area of the text effect as dirty. |
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
262 |
* |
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
263 |
* This function marks the area of a text effect as dirty for repaint. |
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
264 |
* |
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
265 |
* @param te The TextEffect to mark the area dirty |
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
266 |
* @ingroup dirty |
d44e19c5671e
(svn r11065) -Documentation [FS#1186]: of the dirty marking/repainting subsystem. Patch by Progman.
rubidium
parents:
7535
diff
changeset
|
267 |
*/ |
0 | 268 |
static void MarkTextEffectAreaDirty(TextEffect *te) |
269 |
{ |
|
7535
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
270 |
/* Width and height of the text effect are doubled, so they are correct in both zoom out levels 1x and 2x. */ |
0 | 271 |
MarkAllViewportsDirty( |
272 |
te->x, |
|
273 |
te->y - 1, |
|
274 |
(te->right - te->x)*2 + te->x + 1, |
|
275 |
(te->bottom - (te->y - 1)) * 2 + (te->y - 1) + 1 |
|
276 |
); |
|
277 |
} |
|
278 |
||
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
279 |
TextEffectID AddTextEffect(StringID msg, int x, int y, uint16 duration, TextEffectMode mode) |
0 | 280 |
{ |
281 |
TextEffect *te; |
|
282 |
int w; |
|
283 |
char buffer[100]; |
|
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
284 |
TextEffectID i; |
0 | 285 |
|
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
286 |
if (_game_mode == GM_MENU) return INVALID_TE_ID; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
0
diff
changeset
|
287 |
|
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
288 |
/* Look for a free spot in the text effect array */ |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
289 |
for (i = 0; i < _num_text_effects; i++) { |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
290 |
if (_text_effect_list[i].string_id == INVALID_STRING_ID) break; |
0 | 291 |
} |
292 |
||
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
293 |
/* If there is none found, we grow the array */ |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
294 |
if (i == _num_text_effects) { |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
295 |
_num_text_effects += 25; |
8037
8aa4ace04383
(svn r11597) -Change: replace all remaining instances of (re|m|c)alloc with (Re|M|C)allocT and add a check for out-of-memory situations to the *allocT functions.
rubidium
parents:
7849
diff
changeset
|
296 |
_text_effect_list = ReallocT<TextEffect>(_text_effect_list, _num_text_effects); |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
297 |
for (; i < _num_text_effects; i++) _text_effect_list[i].string_id = INVALID_STRING_ID; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
298 |
i = _num_text_effects - 1; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
299 |
} |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
300 |
|
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
301 |
te = &_text_effect_list[i]; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
302 |
|
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
303 |
/* Start defining this object */ |
0 | 304 |
te->string_id = msg; |
305 |
te->duration = duration; |
|
306 |
te->y = y - 5; |
|
307 |
te->bottom = y + 5; |
|
534
306bc86eb23e
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
425
diff
changeset
|
308 |
te->params_1 = GetDParam(0); |
306bc86eb23e
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
425
diff
changeset
|
309 |
te->params_2 = GetDParam(4); |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
310 |
te->mode = mode; |
0 | 311 |
|
4912
0f51b47cb983
(svn r6884) -Codechange: Add strict bounds checking in string formatting system.
Darkvater
parents:
4609
diff
changeset
|
312 |
GetString(buffer, msg, lastof(buffer)); |
4609
954fe701062f
(svn r6462) -Codechange: Have GetStringWidth() return width as well as the height bounding
Darkvater
parents:
4469
diff
changeset
|
313 |
w = GetStringBoundingBox(buffer).width; |
0 | 314 |
|
315 |
te->x = x - (w >> 1); |
|
316 |
te->right = x + (w >> 1) - 1; |
|
317 |
MarkTextEffectAreaDirty(te); |
|
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
318 |
|
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
319 |
return i; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
320 |
} |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
321 |
|
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
322 |
void UpdateTextEffect(TextEffectID te_id, StringID msg) |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
323 |
{ |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
324 |
assert(te_id < _num_text_effects); |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
325 |
TextEffect *te; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
326 |
|
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
327 |
/* Update details */ |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
328 |
te = &_text_effect_list[te_id]; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
329 |
te->string_id = msg; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
330 |
te->params_1 = GetDParam(0); |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
331 |
te->params_2 = GetDParam(4); |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
332 |
|
7535
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
333 |
/* Update width of text effect */ |
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
334 |
char buffer[100]; |
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
335 |
GetString(buffer, msg, lastof(buffer)); |
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
336 |
int w = GetStringBoundingBox(buffer).width; |
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
337 |
|
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
338 |
/* Only allow to make it broader, so it completely covers the old text. That avoids remnants of the old text. */ |
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
339 |
int right_new = te->x + w; |
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
340 |
if (te->right < right_new) te->right = right_new; |
417613ef92fa
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
rubidium
parents:
7454
diff
changeset
|
341 |
|
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
342 |
MarkTextEffectAreaDirty(te); |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
343 |
} |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
344 |
|
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
345 |
void RemoveTextEffect(TextEffectID te_id) |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
346 |
{ |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
347 |
assert(te_id < _num_text_effects); |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
348 |
TextEffect *te; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
349 |
|
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
350 |
te = &_text_effect_list[te_id]; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
351 |
MarkTextEffectAreaDirty(te); |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
352 |
te->string_id = INVALID_STRING_ID; |
0 | 353 |
} |
354 |
||
355 |
static void MoveTextEffect(TextEffect *te) |
|
356 |
{ |
|
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
357 |
/* Never expire for duration of 0xFFFF */ |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
358 |
if (te->duration == 0xFFFF) return; |
0 | 359 |
if (te->duration < 8) { |
2470 | 360 |
te->string_id = INVALID_STRING_ID; |
0 | 361 |
} else { |
2549 | 362 |
te->duration -= 8; |
0 | 363 |
te->y--; |
364 |
te->bottom--; |
|
365 |
} |
|
366 |
MarkTextEffectAreaDirty(te); |
|
367 |
} |
|
368 |
||
6247 | 369 |
void MoveAllTextEffects() |
0 | 370 |
{ |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
371 |
for (TextEffectID i = 0; i < _num_text_effects; i++) { |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
372 |
TextEffect *te = &_text_effect_list[i]; |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
373 |
if (te->string_id != INVALID_STRING_ID && te->mode == TE_RISING) MoveTextEffect(te); |
0 | 374 |
} |
375 |
} |
|
376 |
||
6247 | 377 |
void InitTextEffects() |
0 | 378 |
{ |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
379 |
if (_text_effect_list == NULL) _text_effect_list = MallocT<TextEffect>(_num_text_effects); |
0 | 380 |
|
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
381 |
for (TextEffectID i = 0; i < _num_text_effects; i++) _text_effect_list[i].string_id = INVALID_STRING_ID; |
0 | 382 |
} |
383 |
||
384 |
void DrawTextEffects(DrawPixelInfo *dpi) |
|
385 |
{ |
|
4469 | 386 |
switch (dpi->zoom) { |
6624
880e29b1f25e
(svn r9844) -Codechange: replace zoomlevel with an enum
truelight
parents:
6492
diff
changeset
|
387 |
case ZOOM_LVL_NORMAL: |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
388 |
for (TextEffectID i = 0; i < _num_text_effects; i++) { |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
389 |
TextEffect *te = &_text_effect_list[i]; |
4469 | 390 |
if (te->string_id != INVALID_STRING_ID && |
391 |
dpi->left <= te->right && |
|
392 |
dpi->top <= te->bottom && |
|
393 |
dpi->left + dpi->width > te->x && |
|
394 |
dpi->top + dpi->height > te->y) { |
|
9354
845e07db4549
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium
parents:
9336
diff
changeset
|
395 |
if (te->mode == TE_RISING || (_settings.gui.loading_indicators && !IsTransparencySet(TO_LOADING))) { |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
396 |
AddStringToDraw(te->x, te->y, te->string_id, te->params_1, te->params_2); |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
397 |
} |
4469 | 398 |
} |
399 |
} |
|
400 |
break; |
|
0 | 401 |
|
6624
880e29b1f25e
(svn r9844) -Codechange: replace zoomlevel with an enum
truelight
parents:
6492
diff
changeset
|
402 |
case ZOOM_LVL_OUT_2X: |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
403 |
for (TextEffectID i = 0; i < _num_text_effects; i++) { |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
404 |
TextEffect *te = &_text_effect_list[i]; |
4469 | 405 |
if (te->string_id != INVALID_STRING_ID && |
406 |
dpi->left <= te->right * 2 - te->x && |
|
407 |
dpi->top <= te->bottom * 2 - te->y && |
|
408 |
dpi->left + dpi->width > te->x && |
|
409 |
dpi->top + dpi->height > te->y) { |
|
9354
845e07db4549
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
rubidium
parents:
9336
diff
changeset
|
410 |
if (te->mode == TE_RISING || (_settings.gui.loading_indicators && !IsTransparencySet(TO_LOADING))) { |
6998
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
411 |
AddStringToDraw(te->x, te->y, (StringID)(te->string_id - 1), te->params_1, te->params_2); |
39e783d3816c
(svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight
parents:
6988
diff
changeset
|
412 |
} |
4469 | 413 |
} |
414 |
} |
|
415 |
break; |
|
6624
880e29b1f25e
(svn r9844) -Codechange: replace zoomlevel with an enum
truelight
parents:
6492
diff
changeset
|
416 |
|
6626
207875b9069a
(svn r9846) -Codechange: introduced ZOOM_LVL_MIN and ZOOM_LVL_MAX for the obvious reasons
truelight
parents:
6624
diff
changeset
|
417 |
case ZOOM_LVL_OUT_4X: |
6653
b20fcfed0847
(svn r9884) -Feature: 2 new zoom-out levels: 8 times and 16 times
truelight
parents:
6626
diff
changeset
|
418 |
case ZOOM_LVL_OUT_8X: |
6624
880e29b1f25e
(svn r9844) -Codechange: replace zoomlevel with an enum
truelight
parents:
6492
diff
changeset
|
419 |
break; |
6626
207875b9069a
(svn r9846) -Codechange: introduced ZOOM_LVL_MIN and ZOOM_LVL_MAX for the obvious reasons
truelight
parents:
6624
diff
changeset
|
420 |
|
207875b9069a
(svn r9846) -Codechange: introduced ZOOM_LVL_MIN and ZOOM_LVL_MAX for the obvious reasons
truelight
parents:
6624
diff
changeset
|
421 |
default: NOT_REACHED(); |
0 | 422 |
} |
423 |
} |