1 | February 26, 2001
|
---|
2 | -----------------
|
---|
3 | - Justin and I have been writing LISP code to do teamplay
|
---|
4 | and capture the flag. The CTF objects all function
|
---|
5 | correctly; it'd be cool if we could get some better
|
---|
6 | artwork for them, and if they were tinted right, though. :)
|
---|
7 | - Redefined the cons_cell and related structures to make it
|
---|
8 | easier to browse through the watch window in the debugger
|
---|
9 | without having to type-cast everything I want to see.
|
---|
10 |
|
---|
11 | February 18, 2001
|
---|
12 | -----------------
|
---|
13 | - Changed lisp function (set_player_color x) to
|
---|
14 | (set_object_tint x)
|
---|
15 | - Added lisp function (get_object_tint)
|
---|
16 |
|
---|
17 | February 17, 2001
|
---|
18 | -----------------
|
---|
19 | - Lots of playtesting recently
|
---|
20 | - Have fixed all of the window display problems (I think)
|
---|
21 | - Added lisp function (set_player_color x) to switch player
|
---|
22 | to color number x
|
---|
23 | see chat.lsp for details
|
---|
24 | - Modified cop.cpp with Leon's suggestion for player drawing
|
---|
25 | - Modified people.lsp to correspond to the change to cop.lsp
|
---|
26 | - added -window switch to allow play in a window (still
|
---|
27 | experimental -- only works with 32-bit desktop color
|
---|
28 | depth) -size still works the same. Press alt-tab to
|
---|
29 | switch away from Abuse.
|
---|
30 |
|
---|
31 | February 04, 2001
|
---|
32 | -----------------
|
---|
33 | - Finally got alt-tabbing to behave nicely. Still minor
|
---|
34 | issues with the main menu, but it's at least much
|
---|
35 | better than it was.
|
---|
36 |
|
---|
37 | January 28, 2001
|
---|
38 | ----------------
|
---|
39 | - There's now only one place where a window_manager
|
---|
40 | is instantiated. There are no functions which
|
---|
41 | take a window_manager parameter anymore.
|
---|
42 | - Well, in the process of adding changes necessary to
|
---|
43 | handle recovery from alt-tabbing away from Abuse
|
---|
44 | (which is why I was updating jwindow::redraw()),
|
---|
45 | the entire windowing system is getting an overhaul.
|
---|
46 | It's gonna be sweet when I'm done, though.
|
---|
47 | - jwindow::redraw() has been changed to a virtual
|
---|
48 | function requiring no parameters. This'll make
|
---|
49 | it much easier to implement special specific-
|
---|
50 | purpose windows.
|
---|
51 | - renamed wm[] array in dev.cpp to WinMenus so that it
|
---|
52 | doesn't have a name collision with the satic wm
|
---|
53 | singleton.
|
---|
54 | - Starting work on singleton code; will get rid of all
|
---|
55 | references to an arbitrary window_manager* because
|
---|
56 | there's only going to be one, and it's not ever
|
---|
57 | going to change.
|
---|
58 | - Got rid of X-ish "control is only active when mouse is
|
---|
59 | over it" Now you've gotta click on a control to make
|
---|
60 | it take focus, and you can hit tab to move between
|
---|
61 | controls even when one isn't currently selected.
|
---|
62 | - Fixed right/down arrow display in selection boxes...
|
---|
63 | Finally. That bug had been eluding me forever.
|
---|
64 | (Accidentally Lock()ed again at the end of drawing
|
---|
65 | instead of UnLock()ing ... Oops)
|
---|
66 |
|
---|
67 | January 27, 2001
|
---|
68 | ----------------
|
---|
69 | - I think I've figured out why the automap is crashing the
|
---|
70 | engine sometimes. When I'm done with other stuff, I'll
|
---|
71 | take a look at fixing it.
|
---|
72 | - Got fRaBs' uninstall working. I guess "company name" is
|
---|
73 | required before the uninstaller can initialize. Dumb
|
---|
74 | limitation, if you ask me...
|
---|
75 | - Moving username.lsp, gamename.lsp, and some other LISP
|
---|
76 | files out of /addon/deathmat into /config. Adding
|
---|
77 | more saved configuration stuff as well.
|
---|
78 | - Added net_configuration::save() function
|
---|
79 | - Modifying deathmatch startup code to look for -a switch,
|
---|
80 | allowing addons to redefine deathmatch settings.
|
---|
81 | - Added net_configuration::load() function
|
---|
82 | - fixed info_field->find() function
|
---|
83 | - fixed button_box->press_button() function
|
---|
84 | - Also found the foretile corruption display in the editor.
|
---|
85 | Will take a look at it soon -- for now just close the
|
---|
86 | window and re-open it and it'll be okay.
|
---|
87 |
|
---|
88 | File notes:
|
---|
89 | changed:
|
---|
90 | /
|
---|
91 | abuse.lsp
|
---|
92 | /lisp
|
---|
93 | people.lsp
|
---|
94 | startup.lsp
|
---|
95 | /addon/deathmat
|
---|
96 | deathmat.lsp
|
---|
97 | dstartup.lsp
|
---|
98 | /addon/fRaBs
|
---|
99 | !new-> netstart.lsp
|
---|
100 | /addon/fRaBs/lisp
|
---|
101 | startup.lsp
|
---|
102 | /addon/fRaBs/deathmat
|
---|
103 | deathmat.lsp
|
---|
104 | dstartup.lsp
|
---|
105 |
|
---|
106 |
|
---|
107 | January 24, 2001
|
---|
108 | ----------------
|
---|
109 | - Engine now deletes lcachexx.tmp on exit, and doesn't
|
---|
110 | ever create end.mem in the release build.
|
---|
111 | - Working on Shareware/Retail/fRaBs InstallShield packages.
|
---|
112 | Can't get fRaBs' uninstall to start correctly...
|
---|
113 |
|
---|
114 | January 23, 2001
|
---|
115 | ----------------
|
---|
116 | - Finally fixed the sound so that Abuse doesn't crash when
|
---|
117 | it can't find a sound card...
|
---|
118 | - Fixed game_getter() so that lbreak() works.
|
---|
119 | - Removed *all* exit() calls and replaced with WriteErr().
|
---|
120 | Abuse should *never* shut down without giving a reason
|
---|
121 | anymore. If it does, I've got an error somewhere that
|
---|
122 | isn't being taken into account.
|
---|
123 | - Fixed fRaBs so that it'll work within /addon/fRaBs with
|
---|
124 | the -a switch. Now I just need to tell Justin how he
|
---|
125 | needs to do things from now on... ;)
|
---|
126 |
|
---|
127 | January 19, 2001
|
---|
128 | ----------------
|
---|
129 | - I actually added this a while ago, but for anyone who's
|
---|
130 | interested, the GUID I'm using to create DirectPlay
|
---|
131 | sessions is:
|
---|
132 | {7FAABB28-D1AB-4b3b-957C-58A124E03542}
|
---|
133 | Not that anyone'll probably need this, but who knows?
|
---|
134 | - Added -module switch for specifying "add-on modules,"
|
---|
135 | which will be a more complete version of the -a switch.
|
---|
136 | - Tweaked with the re-worked DPlay stuff and it's much
|
---|
137 | better now. Still works, and is far prettier.
|
---|
138 |
|
---|
139 | January 18, 2001
|
---|
140 | ----------------
|
---|
141 | - The entire Abuse engine now runs inside its own thread,
|
---|
142 | allowing WinMain() to do event processing --
|
---|
143 | Now alt-tab should *always* work, even in game loops
|
---|
144 | where it previously wasn't polling for Windows events.
|
---|
145 | - Re-worked some DirectPlay stuff to allow it to start
|
---|
146 | a new network game after it's done with another...
|
---|
147 | Not the best solution, but it works.
|
---|
148 | - DirectInput routines now run inside their own thread,
|
---|
149 | as part of an effort to make the entire engine multi-
|
---|
150 | threaded. Currently working on moving Get/Translate/
|
---|
151 | DispatchMessage() out of the event handling code and
|
---|
152 | back into WinMain() where they belong.
|
---|
153 | - also had an idea to improve mouse wheel weapon switching
|
---|
154 | that works great except for one tiny problem. I
|
---|
155 | doubt if anyone'll encounter this problem, tho'. If
|
---|
156 | you find it, and it's a major problem, let me know
|
---|
157 | and I'll see if I can get to the bottom of it.
|
---|
158 | - worked on the lighting altorithm. Got a 100% speedup
|
---|
159 | in one of the inner loops, according to the profiler.
|
---|
160 | Lighting now takes about 10% less processor time when
|
---|
161 | using hw acceleration.
|
---|
162 |
|
---|
163 | Could still be sped up, though. The 32-bit reads
|
---|
164 | are faster (and fewer), but they're still not
|
---|
165 | guaranteed to be on a DWORD boundary, so there's
|
---|
166 | still a potential performance hit. I also need
|
---|
167 | to re-work the lighting table's functionality to
|
---|
168 | get rid of another good portion of the 8-bit
|
---|
169 | operations.
|
---|
170 |
|
---|
171 | January 17, 2001
|
---|
172 | ----------------
|
---|
173 | - fixed blinking player location dot not displaying in
|
---|
174 | automap.
|
---|
175 | - finally completely fixed the far right/bottom lines not
|
---|
176 | being drawn problem. Really bizarre solution -- I'm
|
---|
177 | not entirely convinced that the problem doesn't lie
|
---|
178 | elsewhere -- but it's fixed.
|
---|
179 | - weaning functions from image::width() to use
|
---|
180 | image::Pitch instead... DirectDraw aligns all scan
|
---|
181 | lines on DWORD boundaries, so width() doesn't
|
---|
182 | necessarily equal bytes/scan line.
|
---|
183 | - Right now I'm having a problem with system vs. local
|
---|
184 | video memory... If I create any of my surfaces in
|
---|
185 | system memory, the hardware acceleration takes a
|
---|
186 | serious hit on non-AGP systems. If I create surfaces
|
---|
187 | (one in particular representing the offscreen buffer)
|
---|
188 | in local video memory, any software rendering routines
|
---|
189 | (especially lighting) take serious performance hits.
|
---|
190 |
|
---|
191 | Hardware acceleration blazes through all of Abuse's
|
---|
192 | drawing routines. I can get upwards of 120 fps on my
|
---|
193 | computers with delays turned off ... But more than 50%
|
---|
194 | of all processing time is spent in the lighting routine.
|
---|
195 | When using system memory, lighting takes about 15% of
|
---|
196 | the processing time...
|
---|
197 |
|
---|
198 | Methinks I'll have to do some work on the lighting
|
---|
199 | algorithm to make it more 32-bit friendly...
|
---|
200 |
|
---|
201 | January 10, 2001
|
---|
202 | ----------------
|
---|
203 | - fixed bug that made Abuse think that keys were being
|
---|
204 | pressed when they were released, and vice-versa. It was
|
---|
205 | only by an incredible coincidence that the DirectInput
|
---|
206 | code was working at all before this. Now everything
|
---|
207 | (should) work.
|
---|
208 |
|
---|
209 | January 08, 2001
|
---|
210 | ----------------
|
---|
211 |
|
---|
212 | Code Notes:
|
---|
213 | - changing file_manager::remote_file::unbuffered_read() so
|
---|
214 | that it won't overrun the read buffer anymore -- ever.
|
---|
215 | - trying to find a bug that's preventing files larger than
|
---|
216 | 8k from transferring over the network correctly
|
---|
217 | (only a problem in the debug executable ... for now.
|
---|
218 | has potential to make things really bad later on.)
|
---|
219 |
|
---|
220 |
|
---|
221 | January 07, 2001
|
---|
222 | ----------------
|
---|
223 | - Added automap, though it's crashed a test machine twice,
|
---|
224 | so I removed it again.
|
---|
225 | - Built InstallShield package for shareware install
|
---|
226 | - Added mouse wheel support for changing weapons (not
|
---|
227 | perfect yet)
|
---|
228 | - Other stuff, though I've forgotten what.
|
---|
229 |
|
---|
230 | January 06, 2001
|
---|
231 | ----------------
|
---|
232 | - DirectInput for mouse works. Mouse sensitivity can be
|
---|
233 | changed, but needs a user interface still.
|
---|
234 | - Modified do_title() routine to no longer be hard-coded
|
---|
235 | for the original "intro" string ... Any string should
|
---|
236 | now be shown in its entirety. Mouse button click will
|
---|
237 | also exit the title screen.
|
---|
238 | - Started looking at LISP processing code to see about
|
---|
239 | adding functions that'll allow LISP scripts to do
|
---|
240 | intro/title-type stuff. (Draw pictures, show
|
---|
241 | scrolling text, etc.)
|
---|
242 | - Fixed editor map mode ... again. Forgot that I'd lost that
|
---|
243 | fix when I had a mini HD crash.
|
---|
244 | - Framerate is no longer "game tick" based. The game tick
|
---|
245 | runs at a fixed rate of 15Hz, and all game objects run
|
---|
246 | at this rate. This made the mouse move kinda choppy,
|
---|
247 | (as Bill pointed out) even if your computer is capable
|
---|
248 | of framerates much higher. Screen is now updated as
|
---|
249 | fast as possible, and game ticks still happen at 15Hz.
|
---|
250 | Interesting note, though: all I've got to do to increase
|
---|
251 | or decrease the speed of the game is to change a
|
---|
252 | floating-point value to something other than 15 ...
|
---|
253 | Throw a user interface in for it, and "Turbo-mode Abuse,
|
---|
254 | anyone?"
|
---|
255 |
|
---|
256 | It's amazing how much I've been able to tinker with now that the
|
---|
257 | DirectPlay code is more or less done... It's also amazing how
|
---|
258 | much of this engine's capabilities went unused by the original
|
---|
259 | Abuse...
|
---|
260 |
|
---|
261 |
|
---|
262 | January 05, 2001
|
---|
263 | ----------------
|
---|
264 | - Now using DirectInput for keyboard input. Faster, better.
|
---|
265 | Doesn't rely on Windows messaging. No more accidentally
|
---|
266 | hitting the Windows key when reaching for Ctrl, Josh...
|
---|
267 | - Working on DirectInput for mouse input. Will be faster,
|
---|
268 | better. Will support changing sensitivity and more
|
---|
269 | buttons. (5-button/wheel mouses will be more useful
|
---|
270 | in Abuse, eventually...)
|
---|
271 |
|
---|
272 |
|
---|
273 | January 04, 2001
|
---|
274 | ----------------
|
---|
275 | - Sound should never crash the Sound Server anymore (thus
|
---|
276 | crashing Abuse)
|
---|
277 | - Creating DirectPlay sessions with a much higher player limit
|
---|
278 | to allow for more simultaneous "virtual connections" that
|
---|
279 | I make with each client. Fixes "Can't create player"
|
---|
280 | errors.
|
---|
281 |
|
---|
282 | January 03, 2001
|
---|
283 | ----------------
|
---|
284 | - My name's in the startup console view now... :)
|
---|
285 | - Adding console view; throwing out text stat_man entirely
|
---|
286 | - preload.lsp now required. This file contains startup
|
---|
287 | configuration for game fonts, palette, and window
|
---|
288 | stuff.
|
---|
289 |
|
---|
290 |
|
---|
291 | Code Notes:
|
---|
292 | - event_handler (eh) is now created only once immediately
|
---|
293 | after the video mode is initialized. Same with the
|
---|
294 | status_manager (stat_man). They're both destroyed
|
---|
295 | when the program exits.
|
---|
296 | - fixed up WriteErr macro
|
---|
297 | - moving exit(x)'s into WriteErr, which shuts down DirectDraw
|
---|
298 | and shows a message box describing the error.
|
---|
299 | - changed sprite::change_visual() to copy the image and then
|
---|
300 | unlink it. jwindow::jwindow unlinks its screen. Did this
|
---|
301 | to keep them from getting destroyed when lisp is reloaded.
|
---|
302 | - modified NF_set_file_server(net_address *addr) to use dprintf
|
---|
303 | for console reporting.
|
---|
304 | - moving most printf's and fprintf's into dprintf to give the
|
---|
305 | Windows port a form of output for users to see as progress
|
---|
306 | indication and/or error messages.
|
---|
307 |
|
---|
308 | January 01, 2001
|
---|
309 | ----------------
|
---|
310 | - Networking supports more than 2 players
|
---|
311 |
|
---|
312 | December 26, 2000
|
---|
313 | -----------------
|
---|
314 | - Networking is much better now.
|
---|
315 |
|
---|
316 | December 24, 2000
|
---|
317 | -----------------
|
---|
318 | - Fixed extra line of garbage being drawn on display (really!)
|
---|
319 | - Networking works
|
---|
320 |
|
---|
321 | December 9, 2000
|
---|
322 | ----------------
|
---|
323 | - Fixed map display problem
|
---|
324 | - Added experimental logic to the sound server ... It now
|
---|
325 | tries to keep the number of playing sounds managed, so
|
---|
326 | hopefully it'll sound better.
|
---|
327 | - I've set the sound to play at 44.1 khz, 16-bit which helps
|
---|
328 | a lot even without sound management. Eventually this'll
|
---|
329 | be user-configurable, but for now it's hard-coded.
|
---|
330 | - And yet another improvement in the sound department -- it's
|
---|
331 | now in *stereo*! If something's on your left, you'll hear
|
---|
332 | it from the left speaker, and vice versa. This took me
|
---|
333 | *exactly* one line of code to implement. The framework
|
---|
334 | already had support for panning, it just wasn't used for
|
---|
335 | some reason.
|
---|
336 | - Command line switches work now. Try -size (and give it a
|
---|
337 | usable resolution, because it does no checking and will
|
---|
338 | just die if it can't switch modes)... All other switches
|
---|
339 | should work, too. Let me know if any don't.
|
---|
340 | - Fixed minor graphical glitch that made garbage show on the
|
---|
341 | far-right column and bottom scan line of the monitor.
|
---|
342 | (I think.)
|
---|
343 | - Threw out all of my old DirectPlay code and am starting
|
---|
344 | over. I've got a better idea of what it needs to do now,
|
---|
345 | so I should be able to get a slightly more elegant
|
---|
346 | solution in place than the one I was working on before.
|
---|
347 | (also began reading up on Winsock 2 APIs, for possibility
|
---|
348 | of supporting non-Windows players)
|
---|
349 |
|
---|
350 | Known Bugs:
|
---|
351 | - Once, when I was playing around with the editor, the
|
---|
352 | foreground tile window filled itself with garbage. I
|
---|
353 | closed it and re-opened it and it was fine. I couldn't
|
---|
354 | reproduce it again.
|
---|
355 | - Also, once, the debugger found some bad memory allocations
|
---|
356 | in weird places, but it didn't affect the game, and I
|
---|
357 | can't get it to do it again. |
---|