forked from verge-rpg/verge3
-
Notifications
You must be signed in to change notification settings - Fork 1
/
changelog.txt
829 lines (662 loc) · 39.6 KB
/
changelog.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
================================================
Verge 3 Changelog
================================================
Revision 240 (2008-06-07) (Overkill)
=========================
* Fixed a bug with the key buffer that was ONLY visible in LuaVerge. Go figure. Apparently VergeC is treating its strings a little more forgivingly than Lua and in Lua, \0 was being added when it shouldn't have.
Revision 239 (2008-06-06) (Overkill)
=========================
* Moved the key buffer related stuff over to the general script binding so now it can be accessed by both VergeC and LuaVerge.
Revision 224-238 (2008-05-25 to 2008-06-06) (aen)
=========================
* A bunch of compiler refactoring so testing can be incorporated with it.
Revision 223 (2008-05-22) (aen)
=========================
* Replaced implementation of strpos() with STL's find().
Revision 222 (2008-05-11) (Overkill)
=========================
* Verge's icon has a transparent background now.
Revision 221 (2008-05-11) (Overkill)
=========================
* Fixed the error reporting in LuaVerge when calling functions. It no longer "cleverly" omits levels in its traceback, because this was causing empty strack traces which are nearly impossible to debug then (bad!)
Revision 219 (2008-04-28) (Overkill)
=========================
* Okay so apparently SocketGetRaw wasn't nonblocking. So I attempted to fix that. I think it works.
* The Mac/Linux implementation was written but I'm not sure if it works, COMPILING AND TESTING NEEDED ON THOSE PLATFORMS.
Revision 217 (2008-04-25) (McGrue)
=========================
* Added trigger.beforeEntityScript and trigger.afterEntityScript to the global read/write variables.
* if trigger.beforeEntityScript is set to a vc function name, that function will be called before any entity's onActivate script is called.
* if trigger.afterEntityScript is set to a vc function name, that function will be called after any entity's onActivate script is called.
* both of these functions will have the proper event.tx, event.ty, and event.entity values available to them, just like the entity's onActivate script does.
Revision 216 (2008-04-24) (McGrue)
=========================
* Added global read/write strings trigger.onStep and trigger.afterStep.
* If they are set to the name of a vc script, said script will fire everytime the player enters any new tile.
Revision 207-211 (2008-04-20) (Overkill)
=========================
* Added SocketByteCount() at ustor's request. peeks at the count of bytes currently in the buffer. Needs Mac/*nix implementation.
Revision 207-211 (2008-04-18 to 2008-04-19) (Overkill, Kildorf)
=========================
* A bunch of cross-platform portability related things.
* listFilePattern under UNIX machines is now compatible with the Windows way of pattern matching
* Map loading with LuaVerge under Macs was fixed.
Revision 206 (2008-04-17) (Overkill)
=========================
* Added in new socket functionality.
* SetConnectionPort(int port) lets you modify the socket port so you can use sockets with servers that listen to ports besides 45150. This comes with one caveat: servers that make use of SetConnectionPort() must do so before they start listening to connections, because after that point the listen port may not be changed (I don't want to break it).
* SocketGetRaw(int socket, int length) and SocketSendRaw(int socket, string message) send length-delimited string packets in raw form to the given socket.
* Now go nuts and start making your own IRC clients and Verge web browsers! Actually please don't, use it for something sane. But yeah.
-----
PEOPLE NEED TO DOCUMENT THEIR CHANGES IN THIS LOG, JERKS.
Ahem, er anyway, beween Revisions 197 and 206, the following was done:
* Added windowsize variables to verge.cfg so you can specify a default window size that's different than your default gamescreen size.
Example:
xres 320
yres 240
window_x_res 640
window_y_res 480
* Kildorf changed the line drawing routine to use Bresenham's line drawing algorithm (which very very slightly improves line drawing speed)
* Zeromus fixed some stuff in Maped3
* Ness fixed something that caused getObs() to give invalid reads.
* McGrue added string GetUserSystemVcFunctionByIndex(int i) and GetUserSystemVcFunctionCount(). These let you inspect a list of all the VergeC functions at runtime, not available in LuaVerge for obvious reasons.
Love,
Overkill
-----
Revision 197 (2008-02-10) (Kildorf)
=========================
* Added support for entity.script to lua.
Revision 196 (2008-02-07) (Kildorf)
=========================
* Took out some debugging log() lines that I accidentally left in.
Revision 195 (2008-02-03) (Kildorf)
=========================
* Changed Lua "global namespace" to v3 instead of LuaVergeRaw.
Revision 194 (2008-02-03) (Kildorf)
=========================
* Removed MFC dependencies from Audiere.
Revision 193 (2008-02-03) (Kildorf)
=========================
* Fixed sprite accessor variables in Lua.
Revision 189 (2007-12-16) (Kildorf
=========================
* Fixed off-by-one in WrapText. (durrr)
* Corrected comments in WrapText.
Revision 117 (2007-10-16) (Kildorf)
========================
* Rewrote/fixed WrapText (it was dropping into an infinite loop.)
Revision 116 (2007-10-14) (Kildorf)
========================
* Fixed entity.framew/frameh in lua (they were erroring out).
* Fixed Get_EntityFrameH to actually return the height, not the width.
Revision 115 (2007-10-13) (Kildorf)
========================
* Fixed entity.speed in lua (it was trying to change facing instead).
Revision 114 (2007-10-13) (Kildorf)
========================
* Added GetPlayer().
Revision 113 (2007-09-04) (Overkill)
========================
* A few of the builtin LuaVerge arrays now have bounds checking, which is useful to make Verge not explode!
* Added the zone variables zone[].name and zone[].event
Revision 112 (2007-09-03) (Overkill)
========================
* Some problems with variables after the the binding was transferred to the LuaVergeRaw namespace. Fixed.
* Slightly better error handler, which prints a full traceback.
* Internal LuaVerge magic function will now call error() instead of exit() on read/write badness, meaning better information can be gotten about where the error occured.
* key[] contain boolean values. This makes it easier lua-side (where any number is true). It is properly coerced (0/non-zero to false/true) in C++, so it won't introduce any oddness.
* entity[].chr is now writable (like it should be, according to the docs)
* The camera variables were read-only, when they should've been read/write.
revision 111 (2007-09-02) (zeromus)
========================
* setup lua global namespace control for overkill to play with.
did not checkin executable.. I am proposing to release revision 110
revision ..110 (2007-09-02) (zeromus)
========================
* "Pretty much any Lua entity variable can't be set"
"In addition to not being writable, they return 0/1 instead of true/false"
fixed. some missing variables and some typos in bindings
* "The following Lua entity variables need implementation for both read and write operations"
entity[e].chr
entity[e].lucent
entity[e].framew --zero: this is actually rdonly
entity[e].frameh --zero: this is actually rdonly
entity[e].description
fixed.
* The following new functions don't exist in Lua:
bool SoundIsPlaying(int channel)
void RectVGrad(int x, int y, int x2, int y2, int c, int c2, int dest)
void RectHGrad(int x, int y, int x2, int y2, int c, int c2, int dest)
void RectRGrad(int x, int y, int x2, int y2, int c, int c2, int dest)
void Rect4Grad(int x, int y, int x2, int y2, int c, int c2, int c3, int c4, int dest)
string WrapText(int font, string s, int line_width)
int HSV(int h, int s, int v)
int GetH(int color)
int GetS(int color)
int GetV(int color)
HueReplace(int hue_to_find, int hue_tolerance, int hue_replacement, int image)
void ColorReplace(int color_to_find, int color_replacement, int image)
added.
* .lua files couldnt load from packfiles. fixed.
* removed speex from audiere and corrected some optimization settings
* made fmod dependency optional
Revision 103 (2007-08-25) (Overkill)
========================
Thanks to Eldritch for pointing out the following bugs:
* BlitLucent and TBlitLucent were blitting from dest to src, instead of src to dest. Whoops!
* HookButton was off-by-one! HookButton(3, "whatever") would hook to button 2, instead of button 3!
* right(s, 0) returned s instead of "". Fixed that.
Revision ..98 (2007-07-10) (zeromus)
========================
* Improved handle system
* Fixed and improved audiere integration
- added loadsong (etc) apis
- Routed through pakfile and garlick systems
* Changed mousedemo to test the above
* Removed oakra, audiere is better
* Tweaked an irritating line of code in audiere which made debug mode run real slow when loading music
Revision ..93 (2007-07-08) (zeromus)
========================
* LUA bugfixes and cleanups
* Added preliminary audiere integration as soundengine 2
* Improved mousedemo to test audiere and stuff
Revision ..85 (2007-07-08) (zeromus)
========================
* Garlick: re-enabled it, upgraded the flac to 1.1.4, taught it how to handle .wav sfx files
* Completed the preliminary lua bindings. I guess I'm ready to announce and support it.
Revision 75 (2007-07-07) (Overkill)
========================
* Updated the executable's version info. I think it's fair to see we are now Verge 3.1, given it's been a few years since the last actual version numbering update thing and there have been plenty of changes.
* Never actually thought till now that maybe I should be in the CREDITS and LICENSE texts. I've contributed enough over the past two years to be acknowledged slightly, I think.
* zeromus didn't document a lot of his recent changes to source in this log. Fixed that through copying the log messages in the svn itself to here.
Revision 74 (2007-07-07) (zeromus)
========================
Moved upx to a win32-specific folder.
Revision 73 (2007-07-07) (zeromus)
========================
I did something crazy. I removed a_string from the project, replacing it everywhere with std::string complex games run. I think I did it right. If you get tired of typing std:: everywhere, feel free to try setting up using namespace std in xerxes.h.
Revision 72 (2007-07-07) (zeromus)
========================
Well, I still wanted a branches folder. I just wanted it to be empty. Also, the last verge.exe sucked.
Revision 71 (2007-07-07) (zeromus)
========================
Removed the lua branch. Some cleanups to trunk, and a little better release mode configuration. Added PCH to release mode.
Revision 68 (2007-07-07) (zeromus)
========================
Okay, that lua branch sucked. Wasn't worth the trouble. It was easier to just fix vc so it works again. Henceforth I shall develop vc and lua script binding code in parallel!
Revision 66 (2007-07-07) (zeromus)
========================
Bringing some things up to date, fiddling with sound systems, re-added flac (garlick doesnt use it yet). This is a work in progress.
Revision 63 (2007-07-06) (McGrue)
========================
Put ddraw.h and dinput.h into \trunk\verge\Source so it will actually compile.
Revision 59 (2007-07-02) (Overkill)
========================
* Added the operator keywords "and", "or", "not", which are equivalent to "&&", "||", "!". These keywords might make it easier for new users to pick up the VergeC, or at least give an option to those who prefer words to symbols. It is probably in the best interest of people to not mix these two, in order to keep a consistent style in your code.
Revision 57 (2007-07-02) (Overkill)
========================
* This trunk/branch revision stuff confuses me, so I wrote the wrote the wrong revision numbers. Fixed.
Revision 56 (2007-07-02) (Overkill)
=========================
* Added ListBuiltinFunctions(), ListBuiltinVariables() and ListBuiltinDefines(), which return a string list of functions, variables, and defines respectively, separated by "|" delimiters. Useful for having up-to-date VergeC syntax highlighting.
Revision 37 (2007-06-20) (Overkill)
=========================
* Added a new dictionary function:
string DictListKeys(int dict, string separator);
// Returns the names of all the keys in a dictionary,
// with separator put in between each key, and after the last key.
Example:
int my_dict = DictNew();
DictSetString(my_dict, "foo", "bar");
DictSetString(my_dict, "barf", "fudge");
DictListKeys(my_dict, "+"); // Returns "foo+barf+"
Revision 35 (2007-06-18) (zeromus)
=========================
* added SetCharacterWidth (manual override of EnableVariableWidth stuff)
* added libs to project so dx sdk isnt necessary
Revision 34 (2007-01-28) (Overkill)
=========================
* Forgot to commit the changelog, whoops :(
Revision 33 (2007-01-28) (Overkill)
=========================
* Added trig functions that take/return 16.16 fixed-point angles: fsin(), fcos(), ftan(), fasin(), facos(), fatan(), fatan2(). FIXED_PI defines how pi is represented as fixed point, for easier angle calculation.
Revision 32 (2007-05-22) (Jesse)
=========================
* Added SDL framework for mac build - now copied into the .app when compiling for deployment
Revision 31 (2007-05-15) (Jesse)
=========================
* Now using universal version of libfmod to prevent problems with linking. All the hard work was done by kattkieru - I just submit things.
Revision 30 (2007-01-22) (Overkill)
=========================
* Added HSV color functions:
int HSV(int hue, int saturation, int value);
int GetH(int color);
int GetS(int color);
int GetV(int color);
* Added image color manipulation functions:
void HueReplace(int hue_to_find, int hue_tolerance, int hue_replacement, int image);
void ColorReplace(int color_to_find, int color_replacement, int image);
Revision 29 (2007-01-22) (Overkill)
=========================
* Added variadic functions.
* Variadic functions are declared something like this,
where ... is a new type, a vararg list:
void MyFunc(int a, string b, ... args)
{
}
* The ... type must be the last argument in the function declaration.
* All ints and strings prior to the ... args are required arguments,
additional arguments are optional and passed into to vararg list.
A mixture of the int and string types are allowed in vararg lists.
For example, if there were a function void Print(string a, ... args):
Print("Hello world"); // This is okay
Print("This has ", 3, "arguments"); // This is okay too
Print(); // THIS WILL NOT COMPILE.
* variable argument lists have the following members (treat it like a struct):
int length; (read-only)
int int[argument]; (read/write)
string string[argument]; (read/write)
int is_int[argument]; (read-only)
int is_string[argument]; (read-only)
* CallFunction is now a variadic function, which means runtime-called functions
can be passed arguments. However, they still can't return a value.
* The syntactic sugar "mystring"() for CallFunction has been better implemented to
work with any kind of string expression, and it allows any amount of arguments to be passed.
For example: "Print"("This has", 3, arguments);
* The interpreter will error on runtime if the user neglects to pass the number of arguments
needed to call the function. This is a lot better than what it used to do, which was give you
obscure PushInt() error garbage.
Revision 13 (2007-01-26) to 28 (2007-03-01) (zeromus, tatsumi)
==============================================================
* Verge3's release mode fixed.
* Various MapEd3 bugfixes and additions.
Revision 12 (2007-01-22) (zeromus)
==================================
Added DUMB modplayer.
This can be enabled through the following line in in verge.cfg:
dumb 1
All relevant code is conditionally compiled with #define USE_DUMB
The only code modified for this is in snd_fmod.cpp
* Altered PlayMovie() resolution-setting behavior.
Shouldnt set resolution if movie and screen res are the same
Revision 11 (??) (aen)
=========================
I removed flac because I couldn't get it compiling.
Checked in with a snarky comment about the individual that might have added the code
without making sure it compiled. Im positive he didnt check. The problem couldn't be mine.
Revision 8 - 10 (2006-12-31)
=========================
Altered this changelog. That's it. Honest.
Revision 7 (2006-12-05)
=========================
Improved parsing of variables in vc_compiler.cpp throughVCCompiler::HandleVariable().
Better errors for when you give too little/many arguments to a function.
+= concatination for strings now works the way it should.
Parentheses () after a string, like this...
mystring();
...Are syntactic sugar for
CallFunction(mystring);
Revision 5 (2006-08)
=========================
New SVN server, if you're curious as to why the numbering's screwy. Added SoundIsPlaying(int channel), which returns 1 if a given sound channel is playing, 0 if not. Note that channel handles are the return value of a PlaySound() call.
-- Overkill
Revision 115 (2006-08-16):
=========================
* Structs instances exist (internally) at runtime.
* Added a function:
int CopyArray(string source, string dest)
Copies data from one global int/string
array to another, if they're of compatible size and type.
Returns 1 on success, 0 on failure.
Revision 114 (2006-08-16):
=========================
Nested structs were broken by multidim arrays. Fixed that.
Revision 113 (2006-08-14):
=========================
Mac build fix for mouse when scaling screen - now tracks screen correctly.
Silencing 2 warnings about virtual destructors.
Revision 111 (2006-08-13):
=========================
Mac build now scales using software, rather than GL, scaling if needed to fit the screen window size. This is much faster, since there is no transferring of the data to GL each frame.
Revision 110 (2006-08-08):
=========================
Mac build updates:
Incompatibility Fixes:
- #ifdef'ed out some PC-specific #defines in a_string.cpp
- renamed logf to logfile in a_common.cpp (conflicts with standard function)
- fixed PPC endian bug in lucent blitting in vid_ddblit.cpp
- removed <windows.h> include in p_datastructs.cpp (not needed because it included xerxes.h, which includes windows.h on Windows)
Updates for Mac Intel build:
- Check for endianness in the Apple-specific endian swaps in vc_library.cpp, a_vfile.cpp
- Xcode project file update
- Added x86 libfmod for Mac
Revision 109 (2006-08-05):
=========================
Unary + operator allowed. That basically just means you can go x = +14; which is the exactly the same as x = 14; except it may or may not look nicer for particular code.
Revision 108 (2006-08-05):
=========================
Multidim structs should work properly now. Yeah, I know, it took me 3 revisions to get it right.
Revision 107 (2006-08-04):
=========================
Multidim structs should be assignable and readable from now >_<. Before, you could only declare them.
Revision 106 (2006-08-04):
=========================
Multidim structs should be allowed now.
Revision 105 (2006-08-04):
=========================
VSP::BlitTile() and VSP::TBlitTile() will now return rather than error if a tile index is not within range of the tiles array. This is preferrable, seeing as Maped3 will not raise errors if a deleted tile indices still exist on map, nor does it correct it, and it is very hard to track where the missing tiles are being plotted, as Maped3 makes no effort to draw them. Thus, Verge will copy Maped3's behaviour and do nothing, which is smart and less inconvenience in the long run.
Revision 104 (2006-07-30):
=========================
- Some newly introduced entity variables were not initialized in the Entity() constructor, due a false assumption that C++ automatically set all instance variables to 0, "", or null (like Java does). As a result, the entity lucency variable was filled random garbage numbers that caused them to be invisible. This has been fixed.
Revision 103 (2006-07-30):
=========================
- Forgot to update verge.exe file.
Revision 102 (2006-07-30)
=========================
- Er... now entity.description[] is actually a string, as it should be.
Revision 101 (2006-07-30)
=========================
- Added the variable entity.description[], which corresponds to the description attribute set in Maped. (read/write).
- Fixed some potentially bad string array read/write cases where the array index was not checked whether in bounds.
Revision 100 (2006-07-28)
========================
- FIX: TokenRight() included the delimiter character that was in front of the token string grabbed. This was pointless.
Revision 99 (2006-07-28)
========================
- ColorFilter() obeys transcolor setting. NOTE: Needs adding for the other platforms.
- Entity variables added:
entity.lucent[entity];
// The lucency of the entity.
entity.framew[entity];
entity.frameh[entity];
// The dimensions of the entity's chr frames (readonly).
- Sprite system sort of added.
int GetSprite()
// returns a free (read: imageless) sprite handle.
// returns -1 if there aren't any open handles.
// (256 max sprites)
void ResetSprites()
// Clears all sprite data.
// Make sure to free all image handles associated
// with these entities prior to calling this.
int event.sprite
// The index to the currently "thinking" sprite.
int sprite.x[sprite], sprite.y[sprite];
// The coordinates of the sprite.
int sprite.sc[sprite];
// If sc == 0, that means the sprite's (x, y)
// is an absolute position on the map.
// If sc == 1, it means the sprite's (x, y)
// is a fixed screen position.
int sprite.image[sprite];
// The image handle of the sprite.
// Set this to zero to "free" the sprite.
int sprite.lucent[sprite];
// The lucency of the sprite's blitting operations.
int sprite.alphamap[sprite];
// The alpha map for this sprite.
// Overrides additive/subtractive blitting
// and silhouettes.
int sprite.addsub[sprite];
// The alpha map for this sprite.
string sprite.thinkproc[sprite];
// The function to call as a sprite "thinks".
int sprite.thinkrate[sprite];
// Rate in ticks at which this sprite "thinks"
// A rate of 1 is every tick, 0 is no thought.
int sprite.ent[sprite];
// is an entity to bind to.
// (x, y) relative to entity.
int sprite.silhouette[sprite];
// if you want a silhouette of the sprite image drawn.
int sprite.color[sprite];
// The color of the silhouette.
int sprite.wait[sprite];
// Amount of time to wait until processing.
int sprite.onmap[sprite];
// If the sprite bound to an onmap layer.
int sprite.layer[sprite];
// If map-bound: The layer to be drawn above.
// If ent-bound: 0 = below ent, 1 = above ent.
// Otherwise, does nothing.
int sprite.timer[sprite];
// Duration that this sprite has been active.
Revision 98 (2006-07-28)
========================
- FIX: Fixed the bug where FreeImage() didn't do what its name implied. Ouch.
Revision 96-97 (2006-07-23)
========================
- zeromus finally figures out why libflac doesnt build for some people--it was depending on executing nasmw. included that in the repository.
Revision 94-95 (2006-07-23)
========================
- zeromus fixes a bug in map loading, and spruces up the release build.
- regarding the link error, wtf. are you using the .sln file in the svn? it should automatically build that lib.
Revision 93 (2006-07-23)
========================
- FIX: WrapText() didn't actually wrap text, now it does. Seems I forgot to set the return value of a function to a variable :D
- To zeromus, I get this when I compile for some gay reason, using Visual C++ 2005 Express. However, I know my change worked before I clicked "Update" on TortoiseSVN:
Project : error PRJ0019: A tool returned an error code from "Performing Custom Build Step"
LINK : fatal error LNK1181: cannot open input file '..\flac-1.1.2\obj\release\lib\libflac_static.lib'
Revision 92 (2006-07-23)
========================
- zeromus adds examples of the plugin system, including a vector-like data structure. check out p_datastructs.cpp. as you can see, it is amazingly simple!
Revision 91 (2006-07-22)
========================
- Kael Added RectRGrad and Rect4Grad functions. Radial Gradient and 4-point (4-corner) Gradient respectively. Arguments are the same as RectHGrad and RectVGrad, except the 4-point one takes four colors instead of two.
Revision 87 (2006-07-21)
========================
- Nested structures added, allowing structure inside of structures. Checks to see if a struct tries to nest itself, but doesn't check to see if a struct it nests ends up nesting it. So use caution. Example:
struct spell_type
{
string name;
int cost;
}
struct player_type
{
int hp, mp;
spell_type spell[4];
}
- unless(conditions) can be used in place of if (!(conditions))
- until(conditions) can be used in place of while (!(conditions))
- Better type checking.
- Makes sure to note excess [] operators to a struct as such, when resolving assignment
- Working towards struct = assignment operator, for deep copying, but needs more planning still.
Revision 86 (2006-07-20)
========================
- zeromus drops in the old psp driver
Revision 85 (2006-07-20)
========================
- zeromus fixes a little new bug in the map loader
Revision 84 (2006-07-20)
========================
- *Important Note:* Build is unstable and broken at the moment. It runs the tests I specified for it just fine, but the build crashes when loading Sully's test map.
- Windows version now compiles, had to add garlick.cpp and garlick.h to the the solution.
- Temporarily commented out oakra code on Windows, sorry zeromus.
- Add functions/variables that assist with saving verge3 file formats. Each of the CHR/VSP/MAP formats has a save(FILE *f) method. Minor modifications to the internal representation of these file formats were necessary. A function in a_common.cpp for converting corona images back into bytes was added, by the name ImageTo24bpp(image *img);
- These are the related VergeC functions/variables:
string curmap.savevsp
* This The vsp path to use, when saving, in case FileWriteVSP() creates a new VSP and you want to use it.
void FileWriteMAP(int file)
void FileWriteVSP(int file)
void FileWriteCHR(int file, int entity)
void CompileMap(string filename)
- There were also a few other C++ MAP/CHR/VSP methods added, so to eventually get to the point of a VergeC interfaceish dealie.
Revision 80-82 (2006-07-12)
=======================
- zeromus adds an old build of maped3 which has been updated to vs8
Revision 78-79 (2006-07-12)
=======================
- zeromus finishes integration of garlick into snd_fmod
#define GARLICK_USE_FLAC on garlick.cpp if you want to enable flaccing (and have managed to integrate libflac)
- zeromus adds upx to release mode build (why not?)
Revision 71-77 (2006-07-11)
========================
- zeromus cleans a couple of things, updates and slightly oakra, adds flac, and begins to integrate garlick.
some small changes were made to the sound apis, so non-windows ports will need to follow suit.
flac support is only for garlick, and is conditionally compiled. however, if a game is made making use of garlick,
then it won't run on a port without garlick support. So maybe mac should try and get that running soon.
Revision 70 (2006-07-05)
========================
- McGrue added redist exe doc
Revision 69 (2006-07-05)
========================
- Overkill: Now with more changelog.txt goodness!
Revision 68 (2006-07-05)
========================
- Overkill: Upon request, a compiled Windows executable of the current version has been added. However, whether or not this executable will be up-to-date depends on the platform that the changes were made on.
Revision 67 (2006-07-05)
========================
- Append mode for files was appended to the source. Har har. Creates a file if it does not exist. Otherwise, it writes starting at the end of the file opened, leaving existing file data in tact. Use the define FILE_WRITE_APPEND with FileOpen() to invoke this functionality.
Revision 66 (2006-06-30)
========================
- Key buffer functionality has been introduced. It allows typing of the standard characters and their upper cases, as well as buffering of enter, tab, and backspace. Backspaces should be iterated through via a VergeC-side loop in order to work:
if (ch == 8)
{
if (len(s))
{
s = left(s, len(s) - 1);
}
}
Note that this time, functionality still needs to be implemented for other platforms, and will raise a runtime error saying the functions are not supported.
Revision 65 (2006-06-29)
========================
- array.length or array.length(dimension_index_literal) return the length of an array, evaluated at compile-time. Note that dimension_index_literal must be a literal integer or define and can't be a variable, due to the compile-time eval of the length property. Sadly, this has meant an even more ugly CompileAtom() function, but all changes are documented.
Revision 64 (2006-06-29)
========================
- The += operator for concatination of strings is finally in.
Revision 63 (2006-06-25)
========================
- Upon request, the directionals can now be customized by SetButtonKey(). The keyboard directional variables are now associated with k_up, k_down, k_left and k_right in g_controls.cpp, and by default are the arrow keys on the keyboard.
Directionals, however, cannot be changed for SetButtonJB(), because of the way Verge handles the joystick movement internally, and because it'd be rather pointless to customize.
Revision 62 (2006-06-25)
========================
- Added the read-only variable window.active to the source. It receives its value from AppIsForeground, which is now uncommented from win_system.cpp.
However, mac_system.cpp and eventually linux_system.cpp will need to add the functionality to their respective platforms. SDL_GetAppState(); seems to be the thing that should be used. (http://www.libsdl.org/cgi/docwiki.cgi/SDL_5fGetAppState)
Revision 61 (2006-06-25)
========================
- Added cbrt(), which returns the cube root of a number.
Revision 60 (2006-06-25)
========================
- Vertical and horizontal gradient rectangle routines added. RectHGrad() and RectVGrad(). Basically the same to use as RectFill(), plus one color argument before the destination image.
Revision 59 (2006-06-25)
========================
- zone.name and zone.event are now VC string[] arrays (instead of the flat string they were prior to modification), and are actually implemented in VCCore::ProcessString(). Good stuff.
Revision 58 (2006-05-13)
========================
- As of now, compiled code can handle builtin functions over the 255 mark. In place of the previous byte is a word (unsigned short) which in turn will enable us 65535 functions, an amount we'll *never* reach. :D This will change will be handy for the near-future of v3's development.
Revision 57 (2006-05-13)
========================
- A modification to the compiler has been made, now HandleAssign() will check the type of variable being assigned to, before permitting certain operations. This prevents such things as runtime string corruption errors due to accidental use of +=, by giving a much nicer compile time error instead.
Revision 56 (2006-04-13)
========================
- Fixed auxwindow setsize to set to clientsize instead of actual windowsize
Revision 55 (2006-03-03)
========================
- Hex literals, like $FACE are parsed correctly again.
========================================================================
NOTE: A bunch of stuff happened between revision 49 and 55, but we ended up reverting back to revision 49 due to some conflicts about the rate at which Overkill was commiting changes to verge.
========================================================================
Revision 49 (2005-12-28)
========================
- PrintString parses newlines.
Revision 48 (2005-12-28)
========================
- String functions:
string TokenLeft(string s, string delim, int tokenpos)
string TokenRight(string s, string delim, int tokenpos)
string strovr(string s, string ovr, int pos)
int strpos(string s, string sub, int start)
int GetTokenPos(string s, string delim, int tokenpos, int includetoken)
string WrapText(int font, string s, int line_width)
- Some of tese required helper functions, and are commented as such in the code.
Revision 47 (2005-12-28)
========================
- Added max(), min(), sgn(), and abs()
- Implemented VCCore::WriteInt() cases for b1-b4, up, down, left, and right.
Even though these values are overriden next UpdateControls()/ShowPage()...
I had to implement it so I could do demo recording via user keypresses.
========================================================================
Changes for Verge 3.0b5 2005.12.14
* Added experimental plugin api. this is subject to change pending feedback.
* call VCPlugins::registerVariable("1","vartest",2,readfunc,writefunc)
where "1" is type int, "3" is type string, and "5" is type void [forbidden for variables]
2 is the number of dimensions, if it is an array. 0 would indicate a scalar variable.
-- void readfunc(VCPlugins::VariableContext &context)
* call VCPlugins::registerFunction("5","functest","13",func)
{ for example: void functest(int arg0, string arg1) }
where "13" indicates arguments int,string
"5" indicates returning void
and "" for third parameter would indicate an empty parameter list
-- void func(VCPlugins::FunctionContext &context)
* you may leave readfunc and writefunc null for read-only or write-only
* to get the array indices, use std::vector context.indices
* please get arguments in order declared. to get an argument use
context.getOperandInt() and context.getOperandString().
for writeable variables, the value written is access through context.getOperandXXX also
* to set return values for functions and variable reads, use
context.setReturnInt(int value) and context.setReturnString(std::string value)
Changes for Verge 3.0b5 2005.12.11
* Added vc_AbortMovie, win_movie_abortSimple (and mac stub)
* Fixed bug for 24bpp movies in win_movie_load
* Adjusted the framerate calculation to something logical, instead of whatever gibberish it was before
* Fixed bug where \'s in paths weren't property converted to / in mac build when using FILE_WRITE
Changes for Verge 3.0b5 2005.12.10
* Added LoadImage8. Identical to LoadImage0, but respects non-zero 8-bit transparency indices.
* Fixed naming issue where locals and function arguments could have the same name as the function they were part of.
* Fixed several issues with SetStringArray and GetStringArray lookups. These were iterating too little or too much, and were accidentally based on the internal arrays used by SetIntArray and GetIntArray.
Changes for Verge 3.0b4 2005.12.05
* VC identifiers can no longer be keywords.
* Function arguments with the same name are now disallowed.
* Local variables with the same name as an argument are now disallowed.
* #define macro names must be valid identifiers. Previously, any valid token could be used, eg. #define 1 2
* Function arguments must be separated by commas. Previously, the commas could be omitted, and a trailing comma could be included.
* Empty for-statement clauses have been disallowed, eg: for(;;) {} Infinite loops or other partial uses of for-statements as in C should instead be implemented with a while-statement.
* Assignments can no longer use the == token, eg. x == 3;
Changes for Verge 3.0b3 2005.12.04
* Fixed mac build id
* Corrected rounding of values returned by asin, acos and atan to be closer to the actual values
* Returns and map() now work within switch statements
* Duplicate functions now produce an error.
* /*/ is no longer considered a complete comment (ie the comment continues after that)
* Fixed bug in runtime eval box that made // comments fail at the end of the text
* Fixed a bug where a zone might not activate even with 100% activation chance, for real this time
* Fixed a bug with parsing "" in a global initializer
* Corrected error message when a string variable is used as an int
* Added diagonal movestrings (DL/DR/UL/UR and reverses. First letter determines which direction to face.)
* Added playerstep, which determines how far a player moves in a single button press.
* SetSongPos() now works
* You can now use as many .chr's as you want, so long as you don't have entities with more than 256 of them present at one time. It used to be a 256 limit in total.
* Added playerdiagonals, which if set to 0 prevents the player from moving diagonally by pressing two directions at once, or by sliding along a wall.
* FileReadToken now always returns "" when it runs out of tokens
* Added misc. improved VC error messages.
* Illegal characters in VC produce compile-time errors, eg: int @;
* The $ and ' characters are no longer allowed in VC identifiers, eg: int $foo;
* VC number parsing is more strict; erroneous $ and ' not allowed.
* #include and #define now require the full name (previously allowed #i and #d).
* Duplicate #defines now overwrite the previous definition. A warning is dumped to the logfile. Previously the override would not occur, silently.
Changes for Verge 3.0b2 2005.07.21
* Mac Version (see included readme for details)
* By putting "editcode 1" in verge.cfg, you can reload and evaluate code at runtime. Incompatible with releasemode.
* New expression parser that includes unary minus, unary bitwise not (~) and correct handling of logical operators and parenthesis. Also allows logical operators outside of conditionals. (eg. "int x = a || b")
* verge.cfg now has comments (# or //) and handles tabs. Values must not have whitespace.
* Added curmap.path, which is the path (relative to the verge top directory) of the current map.
* Added Read/write access to parallax via layer.parallaxx[],layer.parallaxy[]
* Added ImageValid(int img) to test if an int is a valid image handle
* entity.obstructable[] now works for the player. To help with backwards compatibility, SetPlayer() now makes the passed entity obstructable.
* entity.chr[] added to allow read/write access to the CHR for entities
* Added FileEOF(int file). Returns 1 if the current file pos is at the end of the file
* Added asc(). asc() returns the int value of the first character of the passed string, returns 0 for ""
* Removed 253 chr limit on FileReadLn
* Added an _os macro, which can take values "mac" or "win"
* Added the _build macro, an int of the form YYYYMMDD
* FileSeekPos's SEEK_END now accepts +ve or -ve values (both mean back from the end)
* Fixed the automax 0 bug on win98 (and XP in odd cases)
* Fixed a bug where a zone might not activate even with 100% activation chance
* Fixed imageshell/rotscale bug
* Fixed pixel-based movement in movestrings (P/T works now.)
* Fixed a bug with stalking a CHR with different-length walk animation
* Fixed a bug with switching entities from wandering to stalking and back
* Fixed a bug where entities with speed < 100 would barely move
* Fixed a parsing bug with numeric literals at the end of a line
* Fixed a bug where #include's are not parsed properly at the end of a file
* Fixed check for arrayness that prevented 1-length arrays