-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathHISTORY.txt
4945 lines (3495 loc) · 196 KB
/
HISTORY.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
+--------------------------------------------------------+
| CCC OOO N N QQQ U U EEEEE SSSS TTTTT |
| C C O O NN N Q Q U U E S T |
| C O O N N N Q Q U U EEE SSS T |
| C C O O N NN Q Q U U E S T |
| CCC OOO N N QQ Q UUU EEEEE SSSS T |
+--------------------------------------------------------+
Conquest HISTORY
9.1, 06/19/2019 (stable release)
- In previous versions of Conquest, a hardcoded semaphore key was
used to allocate semaphores. Semaphores are used to coordinate
accesses to the common block by the various processes used to run
a game.
This becomes a problem when you run multiple servers on the same
machine -- it would still work, but then servers might engage in
lock contention among other unrelated servers. Now we generate a
random key and store it in the system conquest.conf file when it
is initialized.
This way each game gets it's own semaphore, and games can no
longer interfere with each other's access to their respective
common blocks.
- Use and require SDL2 rather than 1.2. To build conquest, you will
need to install libsdl2-dev and libsdl2-mixer-dev if you want
sound.
- fix a couple of problems with paging when viewing the planet
list. Now you should get the correct prompts with the correct
behavior when reaching the end of the planet list.
- Fix issues with the conqinit utility. It's documentation and
operation had not kept up with many of the changes made in 9.0.
- Fix bug with hud alert statuses where a potential negative array
index could be used.
- change the conquest state directory from <prefix>/var/conquest/ to
<prefix>/var/lib/conquest/, in closer keeping with the FHS. For
those running a server, you should move your existing state
directory to the new location before installing it.
# first, shut down all conquest servers, then, assuming you
# are using the default /opt prefix:
sudo mkdir -p -m 755 /opt/var/lib
sudo chown root:root /opt/var/lib
sudo mv /opt/var/conquest /opt/var/lib/conquest
Then build and install this, or later versions of Conquest as
usual.
- move the FMT:: format library into a separate subdir (src/fmt/).
- Make some fixes to Makefile.am so that Conquest can be built out
of tree. Also, remove yacc/lex generated files on a 'make
clean'.
- more work on the meta server, stringification, c++ containers, and
other fixes designed to improve stability and security.
Also, fixed a problem where sporadic DNS failures might cause a
'ghost' copy of a server entry to occasionally appear and
disappear in the server list.
- fixup a couple of places where memset was being used on non-POD
structures (structures containing containers like std::string and
std::vector)
- add checks for some supported compiler options to configure.ac
- many changes to underlying code, more modularizing, more
use of C++ containers and other non-visible changes.
9.0.1, 11/25/2018 (stable release)
- This is a minor release - most of the changes are internal and
won't be visible to end users.
- reformat logging output to be more syslog-like
- continue refactoring some of the internal code to make use of C++
containers and remove dynamically reallocated arrays, add more
std::string-ification.
- For new users without a .conquest/conquest.conf file, add two
new default mouse macros:
scroll up = zoom in (magfactor): "]"
scroll down = zoom out (magfactor): "["
- tighten up the conquest meta server - detect and log more errors,
add some more validity checks, be more robust.
9.0, 6/19/2018 (stable release)
- 8.5.99c, 5/21/2018 (development release)
So... 8 years later, a new version of Conquest has been released :)
There have been many changes (internal and external) in this version
compared to the previous 8.5 version. In hopefully a short time,
this version will be released as a stable version 9.0.
The following are the highlights -- look at the commit log for
details.
- Conquest is hosted at GitHub now. The "conq" project at SourceForge
has been deleted.
https://github.com/jtrulson/conquest
- Conquest is built with a C++ compiler now. Your compiler must
support the C++11 standard - this includes g++ 4.9 or better, and
clang++ 3.4 or better. Conquest is still C, but with some C++
constructs and containers in use. I would like to move toward
more C++ use over time.
- The user and system conquestrc configuration files are now named
conquest.conf. If you have an existing ~/.conquest/conquestrc,
you should rename it to ~/.conquest/conquest.conf to preserve your
settings.
- The curses client has been removed. It could no longer compete
with the GL client, and some things, like an object's (ship,
planet, etc) size was just impossible to implement properly.
"conquestgl" (the OpenGL version) has been renamed to "conquest".
- The protocol has changed. A lot of shortcomings in the v6
protocol have been fixed. Support for the v6 protocol is still
provided, but only for playing back old .cqr (Conquest recording)
files made by previous versions of Conquest.
- The internal clocks have been re-implemented, yielding millisecond
accuracy. Previously, you were limited to 1 second accuracy.
This has the side effect that bombing planets is much faster now.
Original Conquest specified that you had a chance to kill up to 3
armies every second of bombing. With the previous 1 second
resolution, you could only bomb up to 1 army per second.
As a result, bombing will seem about 2-3 times faster than
previous versions. This was the way it was intended in original
Conquest, and actually helps to move a game along faster.
- The Common Block (CB) which represents the Universe, has been
reworked. It is now named 'conquest.cb'.
In the conqinitrc file, there is a "global {}" section that
specified how many ship slots you could have, how many planets,
etc.
Previously, this data was ignored as Conquest hardcoded all of
that stuff, and the CB was hardcoded to a fixed size.
Now this data is used to construct a custom CB, and those
parameters are supplied to the client so that it can construct a
custom CB matching that of the servers'.
You can have up to 256 planets, 256 ships, 64K users, 256 message
slots and 256 history entries.
Building a universe is a lot more flexible now since the old
hardcoded methods are gone.
- Planets, suns, and ships have a 'size' value now (expressed in
CU's).
Previously these objects were all 300 CU's in size (due to curses
client limitations).
Now they can vary. The scanning range, orbital path, and damage
potential of a planet or sun also now depends on it's size. Be
careful of Suns now, they have a much larger reach than they used
to :)
For ships, cruisers are a little larger than destroyers.
Destroyers are a little larger than Scouts. Previously it was
fairly random, depending on the texture used, and in some cases
(Romulan) a team scout was much larger than the team cruiser.
- The homeplanet, and core flags of a planet are fully implemented
now. They were present in previous versions, but ignored.
"core" planets are used to mark a planet that must be taken in
order to conquer the universe.
"homeplanet" planets, are team owned planets that are defendable
by team robots.
Previously, which planets were core, and which were homeplanets
were hardcoded into the game. Although you could change some of
the characteristics of the planets, you were still required to
conquer a hardcoded 25 planets in order to take the universe. In
addition, each team had 3 hardcoded home planets defendable by
robots.
Now, you can mix/mash these up as you desire. The only
requirement is that each team has at least one homeplanet. You
can even specify that only one planet is needed to take the
universe if you like. These changes make it possible to more
fully customize a universe of your choice.
- Some new server flags have been added:
- NoTeamWar - when set, ships are prohibited from declaring war
with their own team.
- NoDrift - when set, the Drift bug is disabled.
- Closed - When set, the game is closed/private, and only players
with an account on the server, and the PLAYWHENCLOSED user flag
set, will be able to login and play.
- UDP has been reimplemented, much more robustly this time. UDP
packets are tagged with a sequence number now so that
out-of-order, duplicate, and missing packets can be detected and
handled properly.
In addition, UDP is now negotiated with the server, via the
protocol, eliminating the hacky way we were doing it before.
- The old tactical grids have been removed and replaced with a new
circular grid. The old tac grids only worked in LR scan, and were
not scalable, so they were kind of useless, even though they might
have looked nice.
The new circular grid is much simpler and simply draws 10
concentric circles around your ship, spaced at 1000 CU intervals.
It's available in both LR and SR scans, and is always scaled
properly according to your SR/LR scan selection and your applied
mag factors.
It can be enabled via the Options menu, or toggled on and off in the
game with ^G.
- The ability to make client recordings has been removed. You can
use a screen recorder (like kazam on linux) to record games if you
like.
Server recordings are still supported.
- The TAD (Target Angle/Distance) display, if enabled, is
automatically updated every second with current data when getting
information on a ship or planet.
- Using the -G switch to conquestd, now allows a single server
installation to serve multiple independant games. See
docs/server-guide.md for details.
- The Universe is now "limited" to +/- 200 million CU's in each
direction. This is still pretty huge.
- The -m option to conquest (query metaserver) is gone, and is now
the default when conquest is run without a server argument (-s
...).
- The 3 main configuration files used for the planets, textures, and
sounds (conqinitrc, texturesrc, and soundrc, respectively) are
always overwritten on a make install or package update. If you
would like to make changes to these files that survive an update,
copy them with a '.local' extension. When loading these files,
Conquest will always load a '.local' variant of the file first, if
present.
This is only of interest to people who want to run a server.
- we use the stb_image.h image loader now and all Conquest textures
have been converted to PNG from TGA.
- Many hundreds of warnings, dozens of bugs and an overhaul of much
"under the hood" code has been done.
To see all the gritty details, just go the the GitHub page and
read the commit history.
8.5.1 (stable, windows only) 4/22/2010
- add a call the WSAStartup() to conquestgl so socket i/o can
*consistently* work :)
8.5 (stable) 04/20/2010
- A new stable release, at long last.
- Major highlights of this release, compared to the last stable
release (8.4.1 09/13/2008):
- General:
- MAC OSX (Darwin) support. Full sound and hardware accelerated
OpenGL is supported. Note, you will probably need to get SDL
and SDL_mixer, as well as libogg and lib vorbis in order to
build.
- Native Windows XP/Windows 7 support for the OpenGL client
(conquestgl) using the MinGW cross-compiler enviroment. Full
sound and hardware accelerated OpenGL is supported. A zip
file will be available on sourceforge containing a
pre-compiled conquestgl binary, and support files. See
README.Windows (or Conquest\INSTALL.TXT in the ZIP file) for
more information on installtion and use.
- a re-work of packet handling. The original goal was to
eventually support non-blocking socket IO, however some
significant (and incompatible) protocol changes will be
required to do this properly. Next major release will tackle
this.
- rework of texture and color representation internally.
- remove telnet (-t) support from the clients. Nobody runs
telnet conquest games anymore.
- switched to Mercurial (hg) for source code control.
I will 'hg tag' each devel release. For stable releases (like
this one), a branch name will be created instead of a tag.
Current development will always happen at the tip, in the
'default' branch, and may therefore be unstable.
Bug fixes and enhancements made to 8.5 will occur in the
conquest-8.5 branch.
A command like (all on one line):
hg clone -u conquest-8.5 \
http://conq.hg.sourceforge.net/hgroot/conq/conq conquest
can be used to check out the stable branch for version 8.5.
Omit the '-u conquest-8.5' if you want the current state of
development.
- Server fixes:
- fix server bug that would cause vacant ships, when destroyed,
to fail to explode properly, leaving some stationary torps
behind.
- correct a server problem with UDP keepalive packets. During
certain operations (like beaming, bombing, self destruct, etc)
these packets could improperly terminate these activities on
the server, leaving the client to believe these activities
were still in progress, causing great angst in the land.
- Client fixes (primarily the OpenGL client, conquestgl):
- New Orion ship textures (thanks to blender and the fine
contributors at ShareGC.com). See the CREDITS file.
- some changes to work better with wide-screen display formats
- new ship shield textures, both for the icon-ship display and
the main viewer.
- in conquestgl, torps are no longer colored according to their
'danger' level. It's up to you, as the ship's Captain, to
know when a torp may kill you. When in doubt, raise
shields and run like the coward you are. :)
- rework of the icon-ship display:
- now use a luminance variant of the main ship texture as the
ico-ship rather than a seperate texture.
- implement 'lamps' rather than the text (cloaking, repair,
shields, etc)
- make the ico-ship drawing area square to avoid stretching
issues
- use ship's torp texture for the torp-pips
- use ship's phaser texture for the phaser recharge indicator
- fix bug that could cause the use of undefined mouse macros to
improperly terminate certain operations (beaming, bombing,
etc).
- changes from the last devel (8.4.1i) release:
- Fix up some documentation for Windows systems. Conquestgl has
been tested on Windows 7, seems to work great.
- fix up stupidness in handling cInfo.remotehost data (caused
invalid free()'s, depending on options specified).
- Do not declare a crypt prototype on DARWIN systems
- Move 'q' from beginning of line in conquest.man, lintian error
reported by Jonathon (new debian maintainer)
- Remove global.c, instantiate global.h and conf.h within all of
the <main>.c files. Needed by Darwin systems to avoid linker
errors when building conqstrat and conqinit executables.
- Add some icon pngs and a .ico for windows
## The following are the devel release notes for more detail. Use
'hg log -v' on the repository for even more detail if you care.
8.4.1i (devel) 03/27/2010
- unless there is a big problem, a 'stable' official release will be
up next.
- Switch to using Mercurial (hg) for source code control. I totally
love it compared to svn.
- MAC OS X (Darwin) support. Note this support is still a little
fuzzy, in regards to counquest group creation, etc. I do not have
direct access to a Darwin system, so this port was accomplished by
back-and-forth with a friend who does. Once you can get it built,
OpenGL and sound is fully functional.
- Windows (XP) native support via MinGW cross-compiler toolchain :)
See README.Windows for installation instructions (or INSTALL.TXT
if you download the .zip package). Full HW acceleration and
sound. Oh yes.
I will build a binary .zip package for Windows XP systems and make
it available on sourceforge. Only the conquestgl executable and
required config/data files will be provided.
I do not have access to Windows 7, so I have no idea if it would
work on those systems.
The zip file will contain an INSTALL.TXT file for instructions on
installation.
- Allow various GL functions to be able to detect when geometry is
changed so they can compensate.
- Fix problem where using undefined mouse macros could inadvertantly
cancel beaming or bombing.
- Fix problem wereby the doomsday AP beam was being drawn with
length PHASER_DIST rather than DOOMSDAY_DIST.
- add missing contrib/ dir to src dist.
- remove 'telnet' support. None of these servers have been in
operation for years, so there's no need for 'telnet' server hacks.
Remove conquestsh, and conquestsh.man. Update SERVER.TXT and
conquest.man
- change Conquest licensing from Artistic v1 to Artistic v2. Based
on stumbling across:
http://www.linux-archive.org/fedora-games/140611-good-candidate-packaging-conquest.html
Really - if any dist has issues with Conquest's license, I can't
do squat about it if I don't know about it.
- correct a server problem with UDP keepalive packets. UDP
keepalive packets are sent to the server by the client on a
periodic basis to convince some firewalls that the UDP link is
still active.
During certain operations (like beaming, bombing, self destruct,
etc) these packets could improperly terminate these activities on
the server, leaving the client to believe these activities were
still in progress.
Now, the lower level packet handling routines filter out these
packets, preventing them from accidentally affecting the game's
state.
- since nWelcome can be called multiple times, init the state in the
Init routine.
- add server name and version to (O)ptions display.
- add '%option noyywrap' to the yacc parser. Do not need it, and this
is required for macosx, apparently.
- Remove Unixware specific privilege support.
In the old days, when I was running Conquest on i386/i486 hardware
under Unixware, being able to escalate the drivers process
priority and lock the commonblock into memory was a good win for
performance.
These days, the hardware is so fast, and memory so expansive, it
makes no sense to do this anymore :) Also, I haven't run unixware
in over 10 years, so....
- Remove terminfo src files (ti/*) from the source distribution.
While these files will still be available in the source code repo,
they will no longer be supplied in the src distribution tarballs.
- get rid of portable snprintf implementation - used as a fallback
if the target OS does not support it. All target OS's do support
it, and the fallback implementation could not handle floats
without crapping on itself anyway.
- Get rid of localhost data and checks. Totally uneccessary. Buh
bye.
- Fix a memory leak when dealing with cInfo.remotehost
- Under windows, default to -m if no server (-s) explicitly
specified.
- Fix up the 'CLIENTID' (client type) stuff. Differentiate between
'Unix' and 'Windows' systems.
- Add check for gzipped .cqr files and no LIBZ support. Emit a more
useful error if you attempt to replay a compressed game recording
(.cqr) but your client was not built with libz support.
- Add sdl.m4 and libtool.m4 autoconf files in m4/, in case the
target build system does not have it
- Update several of the autoconf scripts (ltmain.sh, yylwrap, etc)
to more current versions.
- Use CONQUEST_NAME for the Window title (GL client)
- On Windows(MINGW), use $APPDATA/Conquest to store per-user
settings and config.
- Provide a mechanism when running under windows to locate the
various files conquesgl needs to run (etc/, img/, sound/)
Under Windows, CONQETC/CONQSHARE don't really mean much. So, we
add a new funtion, utGetPATH() that will attempt to locate the
various directories conquestgl needs at runtime. These are: etc/
(for global configuration), img/ (for textures) and sound/ (for
the sound files).
First, if there is an env variable CONQUEST_ROOT set to some path,
this will be used to find the other directories.
If this env var is not present, then the 'standard' Windows
%COMMONPROGRAMFILES%/Conquest/ will be used to locate these
directories.
Otherwise we will default to /Conquest.
For example, if you download a conquestgl .zip file, and unpack it
under C:\ , you will want to set CONQUEST_ROOT equal to
"C:\Conquest", and add "C:\Conquest\bin" to your Path, and all
will be well.
- Add a makewinzippkg script for building the windows binary zip
package, add the DLL's neccessary for packaging under windows
(windlls/).
- a variety of other misc stuff. See 'hg log' (if you have the hg
repo cloned) for any missing details.
8.4.1d (devel) 10/01/2009
- a devel release, some highlights:
- fix server bug that would cause vacant ships, when destroyed, to
fail to explode properly, leaving some stationary torps behind.
- Visible changes:
- some changes to work better with wide-screen display formats
- new orion ship textures (yay!)
- rework (centering, shrinking, etc) all of the ship textures, and
fixing a couple of issues with some of the planet textures.
- new ship shield textures (both for the icon-ship display and the
main viewer).
- in conquestgl, torps are no longer colored according to their
'danger' level.
- rework of the icon-ship display:
- now use a luminance variant of the main ship texture as the
ico-ship rather than a seperate texture.
- implement 'lamps' rather than the text (cloaking, repair,
shields, etc)
- make the ico-ship drawing area square to avoid stretching
issues
- use actual ship's torp texture for the torp-pips
- use ship's phaser texture for the phaser recharge indicator
- non-visible changes
- rework of texture and color representation in conquestgl
- rework of the packet handling functions.
## Detailed changes (svn log, basically) since 8.4.1. Read if you
*really* want the details :):
- prevent cores if NULL passed to ibufPut()
- allow conquest to build if GL/glut is not available. Of course,
you only get the currses client...
- cleanup packet handling API in packet.[hc]:
- get rid of the need to specify the socket fd(s) to the pkt*()
routines.
- get rid of the 'direction' (TOSERVER/FROMSERVER/etc) arguments
to the pkt*() functions - not needed anymore.
- rework the packet handling to use the new ringbuffers in
preparation for non-blocking socket io.
- New textures for Orion Scouts, Destroyers, and Cruisers.
The .blend files used to create these textures are in the src repo
in img/src/blender/ . See the README for more details. These
files will not be made a part of a Conquest src release since they
are large, and it's unlikely a 'regular' user would want to mess
with them. They are available in the src tree via svn though.
The new textures were created by using freely available meshes
from ShareCG.com, and importing them (as best I could) into
blender, painting/texturing/lighting them, then rendering the
'scene' to create a texture for Conquest.
I'd love to do this for all of the ships in Conquest, as it looks
really nice. Maybe someday if Conquest ever goes 3D then these
models would be used as the ships themselves :)
- While adding the new ship textures, decided to redo texture
mapping so that it is consistant within Conquest without various
hacks. As a result, all textures have been modified:
- Always force the TGA origin to be in the Lower left.
Previously it was the upper right. In gimp, if saving a
texture, just make sure you specify 'Origin in lower left'
when saving. Texture mapping code in Conquest will always
assume this from now on.
- 0 degrees is 'east' in conquest, so now it is this way in the
textures too. All textures rotated 90 deg so that the
'front' of an object always points east, rather than north
like it used to.
- Enemy ship box now draws the alert box at the ship's depth plane to
avoid perspective issues.
- CQI Textures can now be loaded as a luminance texture by
specifying
luminance "yes"
in the texture definition.
This allows a grey scale (luminance) image to be created based on
an RGB[A] texture. These greyscale images are now used to
generate textures for all of the ico-ship displays in the hud.
Therefore, the seperate ico-ship textures (12) have been removed.
This looks alot nicer as well as not requiring the creation of
extra textures when adding a new ship texture :)
- drawLineBox now supports a Z component.
- drawTexQuad now can properly support both perspective and
orthographic projections with regard to proper texture coordinate
mapping.
- fix up the icon-ship area so that the icon ship is always drawn within
a square to prevent 'stretching' issues.
- do not color torps according to their 'danger' level (green,
yellow, red) anymore, instead just use whatever the torp texure
provides. It's up to you, as the ships captain, to know whether
an approaching torp is dangerous or not. When in doubt, raise
shields. :)
- in line with above, add some 'purple-ness' to the orion torps
(instead of pure white). The Orions really dig purple.
- make GLColor_t a union, containing both the individual color
components and a vector pointing toward them, suitable for use
with glColor*v() calls.
- make getLocalhost() more informative during failures.
- switch to using a new GLTexture_t definition in as many places as
possible, rather than keeping copies of colors, texture id's, etc
in various structs (GLShips, GLPlanets, etc).
This simplifies a variety of things, in addition to being more
readable and wasting less memory.
- remove as many hardcoded glColor*() calls by always using the
texture's color specification. CQI will now warn when a texture
is defined that is missing a color specification. Since it will
be black and transparent, it might be somewhat hard to see :)
- to avoid potential NULL pointer dereferences, create a 'default'
checkerboard texture to use in certain cases where a texture
*must* be present, like ships.
- use the new GLTEX_ID and GLTEX_COLOR helpers whereever possible.
- GLShips, GLPlanets, and Doomsday now use GLTexture pointers rather
than copies of texid's and colors.
- color specifications added to all texture definitions in
texturesrc that were missing them.
- add new 'lamp' textures (for the ico-ship area) and relevant code.
Think of the lamps as a 'check engine' light on your car :)
Lamps are displayed for hull, shields, engine temp, weapon temp,
and fuel - should they experience a condition you should know
about (critical/failure).
- clean up the CRIT defines and use them rather than hardcoding the
relevant thresholds in the code.
- remove cqsEffectPlayTracked() and move it's functionality into
cqsEffectPlay - there's no point in having two play functions that
are virtually identical.
- modify drawTexQuad so that textures can be mapped rotated 90
degrees from their normal mapping.
- clean up the classd (mars), uranus, and luna textures (shrink if
neccessary so as not to affect texture border, remove 'slutty'
pixels :)
- rewrite drawTexBoxCentered to use drawTexQuad
- re-order drawTexQuad to use x, y, and z as the first 3 args. Use
GL_QUADS rather than GL_POLYGON
- fix up some utLog error messages that could core if ever called :(
- add a seperate blinkerQue for blinker animdefs and set them up in
blinker.[hc]. Blinkers can be used in a variety of places in
conquestgl, so no need to confine them to the CP and PlayB nodes
via GL.c. They are initted as part of graphicsInit(), after CQI
has loaded all of the textures and animdefs, so they can now be
used in any node without 'headaches' or special code - just
include blinker.h and have fun.
- get rid of TEX_HUD_ITORPIN, not used anywhere.
8.4.1 (stable) 09/13/2008
- 8.4.1 stable release.
- fix bug introduced in 8.4 that prevented a conquering player from
leaving any 'Last Words'.
- make ship slot allocation a little more aggressive when ship slots
are in short supply. This eliminates occasions whereby all of the
slots could be taken by vacant ships and no one would be able to
login.
Note, this means vacant ships can be stolen by clbFindShip() when
slots are in short supply on servers that allow vacant ships.
- in the old days, when you entered a new ship, you would enter with
your shields up. This behavior got lost in the distant past,
probably when the flags element was added to Ship_t. Now when you
enter a fresh ship, your shields will be up again.
- Change the server so that if a client connects with a different
revision of the common block, just note this in the log and
continue, rather than fail (disconnect) the client.
Since the protocol version is what really matters now, there's no
need to bother with a cmnblk revision check anymore.
- some more cleanups, while we were in there:
- remove support for 24 line curses displays. 25 is the minimum.
Remove alot of crap as a result.
- add the meta cgi stuff to the repository so it isn't lost.
- remove unneeded 'headerflag' global.
- update html versions of the manpages
- correct some problems in conquestgl in reporting certain errors
that could occur when the server could not allocate a ship slot.
8.4 (stable) 08/09/2008
- 8.4 stable release.
Here are the main highlights of this release. Due to the server
and client changes, I would recommend an update to this release,
but then, that's just me.
- server changes:
- correct some nasty off-by-one's (NUMPLANETS) in
serverpkt.c:spktPlanetLoc() and spktPlanetLoc2(). Depending
on your environment (OS, compiler, etc) your results could
vary. The typical symptoms would be reports of invalid packet
types or sizes in the logs (client and/or server), and usually
a rapid ship death with a killed-by of "Nothing in
particular".
- dead rework. Now when you die in the GL client, you still get
to watch the activity going on around your exploded ship.
When you die, you can now press [ESC] to return to the main
menu, or [TAB] to re-enter a new ship.
- conquestgl changes:
- new star textures
- add support for mipmapping of textures. Textures can specify
the boolean 'mipmap' in their texture definition to specify
that mipmaps should be generated for the texture. This is now
done for stars, planets, ships, and the doomsday machine.
This improves the quality of these textures significantly when
viewed at different sizes (scaling and magfactor).
- nCP.c (cockpit): Fix case where when bombing or beaming, and a
mouse macro is used, the relevant sound effects might not stop
and proper state restored.
- bombing graphics, phasers, and moons are now displayed in LR scan.
- reworked the 'alt_hud' stuff. When enabled, this would allow
certain information (distance, direction) about a ship or
planet that was last (i)nfo'd to be displayed.
This option is now called hud_info, and is enabled by default.
For the GL client, this data is displayed below the ship's
status icon in the hud. For the curses client, this
information is displayed just below the viewer.
The alt_hud config option is still present but does nothing.
In the future it will be used to enable an experimental
cockpit (hud/viewer), if one is ever written.
- fix bug that prevented you from seeing your own torps on LR scan
if you were at war with your team.
- clients now compute orbital position directly rather than using
the server's idea of your ship's position in orbit around a
planet. This provides for much smoother movement when you see
ships (including your own) that are in orbit around fast moving
objects.
- rework the handling of the hud and it's associated data.
- CQI:
- fixup the CQI parser so that sections can be nested up to a
depth of 15. Get rid of the subsection crap^Wstuff - no
longer needed.
- add ability to inline animdefs directly into an animation.
- fix a reduce conflict in 'stmt' grammer
- improve error handling/recovery during parsing of certain
sections.
- General:
- massive code cleanup - fixups for newer, stricter compilers.
Rename/standardize variables/functions and relocate in
appropriate source files and headers. Clean up some of the
internal API's. Probably every src file was touched in some
way :)
- tcpwrap.c: only log successful connections if verbose/debug is
specified. Only 'access denied' events are always logged.
- add a '-v' verbose option to the clients. More '-v's
increase verbosity.
- fix some stupidness in sem.c.
- sparc/solaris porting. conquestgl works with OpenGL and
sound if the appropriate requirements are met.
- rework the way the playback speed and time is displayed in
both the curses and GL clients. Now show the percentage into
the recording you are currently viewing, and instead of
displaying the internal framedelay, show the 'speed' (1x, 2x,
-3x, etc).
- fix UDP error on Solaris (possibly others). Use write()
rather than sendto() when a UDP connection has already been
properly established (EISCONN).
- fix doomsday motion. Instead of simply stopping when within
range of a locked-on planet or ship, continue to stay in
range when possible (ie: should the planet/ship move out of
range).
- New SourceForge project page (Conq):
https://sourceforge.net/projects/conq/
SVN URL's
- current (possibly unstable) development
https://conq.svn.sourceforge.net/svnroot/conq/trunk
- tagged (official) releases
https://conq.svn.sourceforge.net/svnroot/conq/tags/
Here are the details of the changes since 8.3 stable:
8.3c (devel) 07/22/2008
- okay, another huge code cleanup, function/variable renaming, API
cleaning, crap removing load of good fun.
- can now see moons on LR scan
8.3b (devel) 07/21/2008
- rework 'dead' handling.
- Now, at least in the GL client, when you die you will actually
see it.
- The 'dead' node has been converted to an overlay node. After
you've died, you will still see what is going on around you.
- in the dead node, hitting ESC will take you back to the main
menu, hitting [TAB] will re-enter your ship directly without
having to go through the menu.
- clients now compute orbital position directly rather than using
the server's idea of your ship's position in orbit around a
planet. This provides for much smoother movement when you see
ships (including your own) that are in orbit around fast moving
objects.
- fix doomsday motion. Instead of simply stopping when within range
of a locked-on planet or ship, continue to stay in range when possible
(ie: should the planet/ship move out of range).
- conquestd (server) changes
- dead rework. No longer sleep for 2 seconds after a ship is
killed.
- in the menu state, no longer wait for 1 second before updating
the client. Now we update at full speed.
- got rid of the driver countdown timer. There is really no need
to kill the driver (if your client driver started it) just
because your ship has been dead for more than 15 seconds. This
is the 21st century after all.
- Older clients playing on newer servers will notice that you go
immediately to the 'dead' screen when you die, since the server
no longer sleeps for 2 seconds on ship death.
- Newer clients playing on older servers will notice that when
they die, ship and planet updates will decrease to one per
second. After 15 seconds, and if you are the only player,
updates will stop entirely.
Other than these changes in behavior, client/servers are still
compatible. As usual, use the latest client on the latest
server for the best results :)
- fix bug that prevented you from seeing your own torps on LR scan
if you were at war with your team.
- redo how data data is cached and stored in the GL client. New
hud.c and hud.h files handle the setting of hud information (alert
level, warp, damage, etc). Move this stuff out of GL.c. Move hud
caching out of gldisplay and into the hud data structs where it
belongs.