Commit Graph

620 Commits

Author SHA1 Message Date
Bill Currie f18e3c3ad7 [qwaq] Add wborder command 2020-03-06 00:31:29 +09:00
Bill Currie 971caf553d [qwaq] Add debug output to the command queue
Be sure to redirect stderr or the screen will get messed up
2020-03-06 00:30:11 +09:00
Bill Currie c377b324a1 [qwaq] Add Group and clean up lots of mess
Things are finally doing something again, and getting closer to having a
moveable window.
2020-03-05 15:44:53 +09:00
Bill Currie a4582e526d [cl_menu,scheme] Clean up after tightened pointer checks 2020-03-05 15:02:40 +09:00
Bill Currie 2ddfe2ef07 [libr] Accept void * for performSelector:withObject:
It's up to the receiver what the object should be.
2020-03-05 15:00:42 +09:00
Bill Currie f3236410d0 [qwaq] Make the event system more informative
Doesn't have timestamps at this stage, but otherwise it reflects the
event system I had in my old text UI which was heavily based on
TurboVision. TV is pretty good (after looking at things a bit closer I
found it wasn't as deep as I thought), and better yet, Borland released
it to the public domain 23 years ago! (wish I'd known that).

Anyway, this commit gets something happening on the screen, even though
the current hierarchy is still a mess.
2020-03-04 22:09:40 +09:00
Bill Currie 815ae02121 [qwaq] Allocate enough bytes for the args list
d'oh
2020-03-04 21:17:17 +09:00
Bill Currie d57e05258c [qwaq] Remove now unnecessary union field name
\o/
2020-03-04 19:10:09 +09:00
Bill Currie c58cf2c2d0 [qwaq] Fail at object oriented design 101
This is horrible, doesn't work, isn't really the direction I want to go
(that became apparent while implementing Screen's handleEvent) and
crashes anyway (Array and not-id...)

*sigh*

Still, this does have some good stuff in it, and it pushed qfcc along
some more.
2020-03-03 21:32:19 +09:00
Bill Currie 7976eec2ce [scheme] Clean up a pile of rotten bits 2020-03-03 17:35:14 +09:00
Bill Currie 051a572bcc [build] Dependency checking for all ruamoko code
Including dependency on qfcc itself. Getting automake to chooch the way
I want it to chooch can be a pain in the... see AvE
2020-03-03 17:24:53 +09:00
Bill Currie cdc1f0c5e7 [libr] Treat ruamoko headers as system headers
Now that qfcc actually supports them properly.
2020-03-03 15:24:41 +09:00
Bill Currie bb25057feb [qwaq] Quickly Workaround Access Qualifications
:)
2020-03-03 10:47:34 +09:00
Bill Currie c2138183dd [libr] Initialize SetIterator the right way
I'd written Set.[rh] after the big rewrite so never noticed the access
error.
2020-03-03 10:43:29 +09:00
Bill Currie 50d39d64cb [qwaq] Link against build ruamoko libs, not installed 2020-03-03 09:30:20 +09:00
Bill Currie 679744fc7d [libr] Fix incorrect bounds check on array insert 2020-03-03 00:11:07 +09:00
Bill Currie d91289ea1b [qwaq] Remove unnecessary wrefresh calls 2020-03-02 18:43:27 +09:00
Bill Currie 33a07c0f6b [qwaq] Make command buffer larger for now
A small one should be fine once threading is working.
2020-03-02 18:30:58 +09:00
Bill Currie 6f1386fa0d [qwaq] Test out acs chars and the classes
Crashes due to flooding the command buffer, but otherwise works (with
larger buffer).
2020-03-02 18:29:31 +09:00
Bill Currie b9ab30ff59 [qwaq] Add mvwaddch and ACS support 2020-03-02 18:27:08 +09:00
Bill Currie a0c4d56668 [qwaq] Continue processing on void commands
If the last command in the buffer had no parameters, its length would be
only 2 and thus processing would stop before reading the command from
the buffer.
2020-03-02 18:19:41 +09:00
Bill Currie fa66e9fc2f [qwaq] Move queue handling into separate functions
This makes it so I need to edit only one place when I get threads
working. Also, it fixes some bugs (eg, panel creation wasn't implemented
correctly).
2020-03-02 18:15:31 +09:00
Bill Currie d88a091fc6 [qwaq] Use protocols to distinguish object abilities
Well, that took a fair bit more than it should have to get working: had
to implement the protocol support in qfcc and engine-side ruamoko.
2020-03-02 15:22:54 +09:00
Bill Currie 92cb3a5285 [qwaq] Flatten the hierarchy and do some cleanup 2020-03-01 18:25:02 +09:00
Bill Currie 4d076da4b6 [qwaq] Fix warning hidden by type alias bug 2020-03-01 16:15:33 +09:00
Bill Currie df2ed4b086 [qwaq] Move from tools to ruamoko
This fixes the dependency issues between qwaq and ruamoko. qwaq is
actually older than ruamoko. That little language feature test has come
a long way.

However, I'm considering moving to non-recursive make, but...
2020-03-01 00:55:15 +09:00
Bill Currie 6fccfdf1b9 Fix a thinko in the save game menu
I thought I had to prepend the gamedir when using QFS_FOpenFile (or
QFS_OpenFile in rua).

Nope, it's gamedir based
2020-02-26 18:03:00 +09:00
Bill Currie 383a7fe5e1 Remove File_Open
Other than its blocking of access to certain files, it really wasn't
that useful compared to the functions in qfs, and pointless with access
to qfs anyway.
2020-02-26 13:45:14 +09:00
Bill Currie caf78b5422 Rename ty_none to ty_basic
This far better reflects the actual meaning. It is very likely that
ty_none is a holdover from long before there was full type encoding and
it meant that the union in qfcc's type_t had no data. This is still
true for basic types, but only if not a function, field or pointer type.
If the type was function, field or pointer, it was not true, so it was
misnamed pretty much from the start.
2020-02-21 17:52:00 +09:00
Bill Currie 2f18364364 Start work on encoding typedef chains 2020-02-19 21:41:46 +09:00
Bill Currie a6f3e1753a Fix ruamoko's hashtab_t typedef
Being typedefed directly to a pointer is a holdover from when pointer
declarations were really awkward.
2020-02-19 21:41:46 +09:00
Bill Currie 67e183c8b6 Put the guts of qwaq's reflection code into ruamoko 2020-02-19 21:41:46 +09:00
Bill Currie 39df9c0c87 Fix some more double related warnings
Fewer than I expected
2020-02-15 23:49:12 +09:00
Bill Currie 7e7e0526dd Fix a double constant issue
There will be more of these :/
2020-02-15 23:49:12 +09:00
Bill Currie df7c08a010 Add support for doubles to Ruamoko
Only as scalars, I still need to think about what to do for vectors and
quaternions due to param size issues. Also, doubles are not yet
guaranteed to be correctly aligned.
2020-02-15 23:49:12 +09:00
Bill Currie 9248e8cf01 Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
Bill Currie c98d1ff08c Document some problems with nil
While he's a pretty cool character in HZD, he seems to have some
identity problems when in a compiler.
2019-06-09 22:29:51 +09:00
Bill Currie f163e35f21 Add a builtin to get keydown. 2016-01-10 13:33:05 +09:00
Bill Currie c25fd410a5 Update doxygen config files for 1.8.9.1 2016-01-04 11:17:09 +09:00
Jeff Teunissen 396338a543 Rua: flesh out docs for BOOL. 2014-10-16 13:05:57 -04:00
Bill Currie f5501fbf24 Fix a pile of automake deprecation warnings.
s/INCLUDES/AM_CPPFLAGS/g

I <3 sed :)
2013-11-24 13:11:50 +09:00
Bill Currie 2e8d9e7636 Correct the menu code to sortof work with the new IMTs.
The menu code at least compiles now. It should work for the default IMT
tables (ie, if imt_0 is there).
2013-01-16 20:31:46 +09:00
Bill Currie 2974bedd78 Add ruamoko declarations for the new menu functions. 2013-01-13 20:13:19 +09:00
Bill Currie 4868a245b3 Fix the "for new syntax" FIXME.
Empty structs are now (correctly) invalid. The hack of using an empty
struct to represent a handle returned from a builtin has been unnecessary
since opaque structs were implemented: now a pointer to an opaque struct
can be used. This is mostly safe as handles are aways negative and thus
attempting to dereference such a pointer should result in a VM error. It
will be even safer once const is implemented and the pointers can be made
constant (eg, typedef struct handle * const handle;)
2012-12-20 10:10:41 +09:00
Bill Currie e17d8ac9db Add ruamoko wrappers for the set api.
This includes both normal functions and a Set class (and SetIterator
class). Most of the methods are implemented as builtins.
2012-12-16 13:48:36 +09:00
Bill Currie 7ed490c434 Allow nil when replacing objects in an array.
I want this in a little project, but I also want to consult with Deek about
it, so I've only commented out the code.
2012-12-16 13:38:19 +09:00
Bill Currie 814f902e88 Add a new crosshair.
Now all 4 slots of the crosshair table are used :)

Also, fix the offset for pic based crosshairs in glsl, and use just one
func for them.
2012-12-12 19:36:18 +09:00
Bill Currie f358364ef2 Fix assignment of nil to a structure.
constfold.c seems to be getting a little long in the tooth :P
2012-12-11 11:53:01 +09:00
Bill Currie cd62755ce4 Fix some warnings found by qfcc's flow analysis.
Ok, maybe it works too well? Nah, not really. It's nice having proper
unisnitialized checks on structs.
2012-12-10 22:20:44 +09:00
Bill Currie ff0c51e52c Build our ruamoko stuff with optimizations :) 2012-12-01 11:20:06 +09:00
Bill Currie 2aaa380098 Fix some uninitialized variable warnings.
While they're false positives (qfcc doesn't know about noreturn), at least
qfcc is doing its job :)
2012-11-21 10:25:29 +09:00
Bill Currie db92a7b9f9 Fix an out-by-one error.
That "qfvalgrind" is proving worthwhile :)
2012-11-20 19:49:57 +09:00
Bill Currie abd9704d26 Avoid over-releasing the autorelease pool.
It seems that the engine menu code must be calling menu_post too often, but
I don't feel like fixing it just yet.
2012-11-20 14:54:40 +09:00
Bill Currie 951bed6206 Allow the retain count to become 0.
With the new retain count scheme, it must reach 0 or double frees won't be
caught.
2012-11-20 14:41:13 +09:00
Bill Currie d5c831b6da Add a little test case for accessing types.
Using ruamoko to access ruamoko type encodings is actually quite pleasant
:)
2012-11-15 13:40:11 +09:00
Bill Currie 9a53531d3b Fix a braino in Object's -init.
I'd forgotten AutoreleasePool doesn't like receiving -retain when I did the
retainCount change, and thus Object's -init was a little too naive.
2012-11-14 20:45:29 +09:00
Bill Currie c96718493a A bit of a cleanup before fixing class type defs.
All internal structs now have "proper" names, and fit the naming convention
(eg, obj_module (like objective-c's types, but obj instead of objc). Some
redundant types got removed (holdovers from before proper struct tag
handling).

Also, it has proven to be unnecessary to build internal classes, so
make_class and make_class_struct are gone, too.
2012-11-12 11:12:33 +09:00
Bill Currie dc22d06905 Fix an out-by-one in the definition of INT_MAX.
INT_MAX wound up being INT_MIN :/
2012-11-12 10:28:31 +09:00
Bill Currie 218424d0ae Add debug.r to libcsqc. 2012-11-09 19:11:30 +09:00
Bill Currie 07e67da838 Add class versions of retain and friends.
As class objects don't have retain counts (they're usually static, even!!),
allowing the instance implementations of retain, release, and autorelease
attempt to modify the non-existant retainCount would be a recipe for severe
headaches. We also don't want the retainCount returning "random" values.
2012-11-08 20:41:56 +09:00
Bill Currie 6b46cde7c8 Move retainCount out of Object.
Going by "standard" Objective-C, retainCount really doesn't belong in
Object itself. The way GNUStep does it is to stash retainCount in memory
just below the object by allocating extra bytes for the count and returning
a pointer just beyond those extra bytes. Now Ruamoko does the same. This
fixes the inconsistencies in structure layouts for Protocol and class
structs between qfcc generated (internal) structs and user visible structs.
2012-11-08 20:24:25 +09:00
Bill Currie 3042c2bb1a Create backups of quick.sav.
F6 is fantastic, until you hit it by mistake after dieing when you meant
to hit F9 (I've done that way too often). quick.sav is still the last file
written via F6 (so F9 is unaffected), but now the previous quick.sav
becomes quick1.sav. Up to 5 (currently) backups will be kept: quick1 is
the newest, quick5 the oldest. A menu for accessing the backups has been
added as a sub-menu of the load menu.
2012-07-21 22:41:57 +09:00
Sander van Dijk 4725d5a973 Add a "Prev. weapon" menu option. 2012-07-17 06:28:32 +09:00
Bill Currie f1854c85b2 Fix some doxygen warnings and errors. 2012-07-15 07:39:50 +09:00
Bill Currie 37dda1ef99 Update for doxygen 1.8.1 2012-07-15 07:39:50 +09:00
Bill Currie d9288c0837 Don't double-draw the bindings menus. 2012-07-14 20:16:45 +09:00
Bill Currie 23a38738fc Massive whitespace cleanup.
Lots of trailing whitespace and otherwise blank lines.
2012-05-22 08:23:22 +09:00
Bill Currie 95a06c20b2 Move qfcc's libs and headers to ${prefix}/share
On discussion with Despair, share makes more sense than lib as they are
really cross-platform (though qfcc itself is not).
2012-05-05 19:34:35 +09:00
Bill Currie bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie b69d527507 Nuke another AM_CONDITIONAL 2012-02-13 16:08:03 +09:00
Bill Currie 546a7e7aac Avoid recusing into tools and ruamoko when not needed. 2012-02-12 19:29:31 +09:00
Bill Currie 7c76415f9d Add math.r to libr. 2012-02-06 19:33:08 +09:00
Bill Currie a694eed968 Add Draw_Picf to allow smooth placement on low-res consoles. 2012-02-06 19:32:30 +09:00
Bill Currie 14c0e22494 Tweak Draw_MakePic to be a little more usable. 2012-02-06 15:50:32 +09:00
Bill Currie d6ddbe4efe Create decls for the new draw functions. 2012-02-06 15:50:32 +09:00
Bill Currie c98ffa4eda Create a message buffer API for Ruamoko
The api hides all the gory details of message buffer setup and usage
(particularly the differences between writing and reading). Most
importantly, the api provides a safe way to read and write binary data
(always little endian).
2012-02-06 15:50:32 +09:00
Bill Currie 6e10d847ef Make the qpic_t struct consistent with the internal layout.
Now that the renderer ruamoko builtins use handles, there's no need to
hide data, and it's safer anyway.
2012-02-06 12:50:44 +09:00
Bill Currie c8163fc0de Add an option to prevent the use of default paths.
Despair has things locked down such that running qfcc during a build fails
due to lack of read access to /usr/local/lib. This is actually a good
thing as accidentally hitting old includes/libs (when a file gets deleted
in the tree) hides bugs. Thus, --no-default-paths to turn off default
search paths.
2012-01-04 13:53:04 +09:00
Jeff Teunissen 7d6430edd4 Rua: move the old cvar() and cvar_set() functions
Move the old cvar get/set funcs to cvar.[rh] from system.[rh].
2011-12-14 20:33:33 -05:00
Jeff Teunissen 6ead583195 Ruamoko: Implement infinity.
The special token __INFINITY__, like __FILE__ and friends, will expand to
a floating-point expression containing a value the C compiler considers
infinite. Obviously, this assumes that the system has relatively modern
float hardware -- but if it doesn't, having Ruamoko be able to represent
float infinity is the least of your problems. :)
2011-12-14 12:20:10 -05:00
Jeff Teunissen 4f4d6b5675 OK, now import them...
Duh.
2011-12-09 22:42:43 -05:00
Jeff Teunissen 361255cf31 Ruamoko: New math constants, some new math functions
Also, switch all of the math builtins functions we use from Rua to the
ones that accept and return floats, avoiding conversions to/from double.
2011-12-09 22:36:41 -05:00
Jeff Teunissen c7c646a53f Makefile portability fixes
Allow our makefiles to build with non-GNU 'make' implementations.
Required some renaming of not-really-QuakeC source to .r to get it right.
2011-07-25 17:22:44 -04:00
Jeff Teunissen 5ef92009f0 Switch to SVG images for docs.
Doxygen 1.7.3 added support for SVG output from dot, so let's use it.
2011-07-25 17:22:44 -04:00
Bill Currie ef8b1821d2 Fix the bindings menus.
That was a lot easier than I expected.
2011-07-10 18:58:50 +09:00
Bill Currie 15cb8849c3 Docs for MenuGroup 2011-07-10 18:58:16 +09:00
Bill Currie 7c23817cbe Some changes I missed from the previous commit. 2011-07-10 18:57:24 +09:00
Bill Currie 2c85a3ccc0 Make a start on documenting the gui stuff. 2011-07-10 17:33:43 +09:00
Bill Currie 361e76aa7b Convert prototypes to C-style for doxygen. 2011-07-10 08:56:04 +09:00
Bill Currie 8ac5079ada Get inputlines mostly working.
It should be only behind-the-scenes updates that are still a problem.
2011-07-09 21:16:38 +09:00
Bill Currie 652b434e7b Rework the inputline wrapper.
Use the resource map code for handle management (much safer).
Add support for the enter callback (function or method).

Unfortunately, it still doesn't work due to poor design of the inputline
user data.
2011-07-09 09:44:37 +09:00
Bill Currie 838e35af96 Fix the escape problem for Join Game.
Allowing the menus to override the Escape key was necessary, but there was
badly written code floating around that broke when that was implemented.
Oops.
2011-07-07 17:08:21 +09:00
Bill Currie 01463b0e77 Fix the color view key gobbling bug. 2011-07-06 19:48:27 +09:00
Bill Currie 508fd22d27 Convert the player menu to using the plist.
Various things are decidedly broken:
  * shirt and pants colors cannot be changed
  * shirt and pants color views gobble the cursor keys (cannot leave them)
  * input fields do not get updated if the cvar is changed elsewhere
  * name input field (at least) does not set the new name
However, at least the escape problem is fixed :)
2011-07-06 19:21:35 +09:00
Bill Currie 4e66a5b327 Add rua rappers for the cvar alias functions. 2011-07-06 19:17:28 +09:00
Jeff Teunissen 82e934af47 Rualib: nuke some unnecessary classes
List, ListNode, and Stack aren't necessary; all three are obviated by the
new, richer Array class.
2011-06-14 13:33:10 -04:00
Jeff Teunissen b18302eac1 Array: sorta-implement -description
An #if 0'ed out implementation of the -description method, which currently
returns a Quake string containing whatever the contained objects return
from -description, between parens and separated by commas (just like plist
format). Ideally, we'd have string objects interchangeable with primitive
strings, but having string objects (which are being worked on) should help.
2011-06-14 13:31:30 -04:00
Jeff Teunissen 21c46b9081 View: add brief description 2011-06-14 13:31:30 -04:00
Jeff Teunissen cb86e09029 Rualib: documentation updates.
Add a layout file for Rua docs and create groups for its library functions.
2011-06-14 13:31:30 -04:00
Bill Currie 30bd1c0134 Create classes for inputing cvar strings and script the network menu.
Hitting enter after inputting text is currently broken, but that's because
support for it was never put in the inputline wrapper code.
2011-03-25 18:26:10 +09:00
Bill Currie 896791b209 Correct the spelling of "int" and clean up the mess. 2011-03-25 16:53:04 +09:00
Bill Currie 8c1d948586 And qfcc finds another bug :) 2011-03-24 13:36:36 +09:00
Bill Currie 1822290b1a Fix the double offset of inputline text. 2011-03-24 08:50:32 +09:00
Bill Currie e878ace83b Make input lines mostly work.
There is still a problem with the placement of the input line text
relative to the text box caused by vertical movement being excessive.
2011-03-23 21:35:49 +09:00
Bill Currie 98f5f84ca3 Clean up the leftovers of converting the controls menu.
The bindings menu is still inaccessible, though.
2011-03-23 15:22:01 +09:00
Bill Currie 15fc325136 Fix the features menu. 2011-03-23 15:19:30 +09:00
Bill Currie bc0cffc9c6 Fix handling of autorelease pools in the menu code.
Create a "menu_pre" function that creates the autorelease pool, change
menu_post() to release the pool correctly, and make the menu internal code
require and call menu_pre.
2011-03-21 13:14:14 +09:00
Bill Currie a9e139e14c Correct a minor logic error.
We don't want to always add a new autorelease pool, and we certainly want
one if there are none.
2011-03-21 13:12:30 +09:00
Bill Currie 7b9d70167f Fix some missed language changes. 2011-03-10 20:51:04 +09:00
Bill Currie 59f520f4e7 Fix some parse errors that were lost in the noise. 2011-03-03 10:39:21 +09:00
Bill Currie aa4ed00090 Fix the message type used to check arguments. 2011-03-02 22:13:16 +09:00
Bill Currie 3a1e467ae8 Non-bogus syntax and warning fixes for ruamoko/cl_menu.
Sadly, there are many bogus warnings and other errors. qfcc is still very
sick :(.
2011-02-14 23:10:46 +09:00
Bill Currie 9ac6929cf7 Syntax fixes for ruamoko/game.
This one actually would compile if object files were working.
2011-02-14 23:10:46 +09:00
Bill Currie 6af747705c Syntax fixes for ruamoko/scheme. 2011-02-14 23:10:46 +09:00
Bill Currie da3ac388fe Syntax fixes for ruamoko/gui.
Once aggregate initializers are working, ruamoko/gui will "compile"
(no object files, and still the bogus integer constant into ... warning).
2011-02-14 23:10:46 +09:00
Bill Currie 595019d86e Fix some problems found by the new qfcc.
With this, ruamoko/lib almost compiles (though no object files are output).
Just some bogus "redeclared" errors and an improperly implemented
statement that produces an ice.
2011-02-14 23:10:45 +09:00
Bill Currie daae0284a1 Work around a warning about passing int constants into ...
I'm not sure why this is happening now when it didn't in the old qfcc,
but this will take care of the warning for now until I can get around to
fixing it.
2011-02-14 23:10:45 +09:00
Bill Currie 1195df9686 Update for the new syntax. 2011-02-13 21:25:36 +09:00
Bill Currie ed3f98eab4 qwaq related compile fixes for the new function syntax rules. 2011-02-13 19:07:30 +09:00
Bill Currie 1f8b453d58 Add some return statments for now.
At the moment, qfcc has no way of knowing that a function will never
return. This is needed until the time qfcc can know that.
2011-02-10 14:48:06 +09:00
Bill Currie d6b10c99aa Most, if not all, of the fixes needed to get qwaq building.
This is pretty much just changing [] to * and moving [N] to the other side
of the variable name.
2011-02-07 22:16:16 +09:00
Bill Currie c38ea0b1bc Correct the spelling of "nil". 2011-01-14 12:07:40 +09:00
Bill Currie f2fb853052 Fix for parallel make. 2011-01-10 13:29:51 +09:00
Bill Currie cbe245725b Install the symbol file so menus can be debugged. 2011-01-10 12:26:11 +09:00
Bill Currie 9e06220dc5 Missed a class -> class pointer change. 2011-01-10 12:26:11 +09:00
Bill Currie 6ebee4ad0e Get the type of Method right.
It's a direct structure rather than a pointer.
2011-01-10 12:25:31 +09:00
Bill Currie 75ec6bf244 Clean out some unnecessary types from the progs engine and clean up the mess.
This is a nasty commit, sorry, but 99% of the commit is interdependent.
2011-01-10 12:25:31 +09:00
Bill Currie c5edbf147a Move ruamoko libs and headers into ${prefix}/lib/qfcc 2010-12-24 19:39:54 +09:00
Jeff Teunissen b184739f03 Use qfcc's new unsigned constant qualifier for UINT_MAX 2010-12-24 05:09:14 -05:00
Jeff Teunissen 81d927c702 rename Runtime.h -- it's not a class. 2010-12-24 05:03:31 -05:00
Jeff Teunissen cdb9783d69 Actually commit the new header...
@#$@$#^%^
2010-12-16 06:46:59 -05:00
Jeff Teunissen ff57b96bc6 Add Runtime header for obj* stuff.
Also, move lots of stuff out of the Object header.
2010-12-16 06:42:28 -05:00
Jeff Teunissen 7cb2ce3263 whitespace, clean up AutoreleasePool warnings
d'oh! How did I forget to include that header?
2010-12-16 06:24:54 -05:00
Jeff Teunissen 061f56ea2d Add missing methods
Array: Implement -indexOfObject: and -indexOfObjectIdenticalTo:
2010-12-16 06:24:54 -05:00
Jeff Teunissen 4968b65b2f Minor doc updates
Reveal more Rua documentation that I had already written years ago, and
clean up Array a little.
2010-12-16 06:24:54 -05:00
Jeff Teunissen a8e3d5d527 Doc fixes
Tweak colors, add borders around some images, remove static definitions
from engine docs.
2010-12-16 06:24:54 -05:00
Bill Currie 096d7f5791 Turn on -Wall -Wno-integer-divide
This will break Array.r until Deek gets his changes in.
2010-12-16 20:14:06 +09:00
Bill Currie 6d494bfcdf Fix a slew of warnings found by -Wall.
-Wall still isn't used yet due to a missing method in Array, and
overzealous warnings in qfcc, but this covers the necessary fixes.
2010-12-16 20:01:49 +09:00
Jeff Teunissen 28338bc74e Turn off timestamping in HTML docs
The pointless deltas were slowing rsync down more than I'd like, and it's
not as if that information is all THAT useful. Nuke it.
2010-12-13 13:20:26 -05:00
Jeff Teunissen d9e97e27a2 Doxygen formatting updates
Doxygen-produced HTML docs now look a lot more like the web site, and
are now more attractive in general. :)
2010-12-13 03:28:34 -05:00
Bill Currie d89893682e Tweak an "only".
*twitch*
2010-12-12 22:55:53 +09:00
Bill Currie 736c9a3a60 Create a reference to Array(Private).
This is the real fix for the problem worked around by 5c8cb8fe.
2010-12-12 20:44:46 +09:00
Bill Currie c262229478 Revert "Move private Array methods into main file"
This reverts commit 5c8cb8fec8.

The fix comes next.
2010-12-12 20:43:28 +09:00
Jeff Teunissen 15ba4091bc Doc fixes.
Document some more Array methods, mark the private methods as private in
the docs.
2010-12-12 05:45:12 -05:00
Jeff Teunissen 4a8ff8aee8 A little strictness: error out in some nasty conditions. 2010-12-12 05:41:52 -05:00
Jeff Teunissen f86e933c6a Array API fixes
NQ menus work now.
2010-12-12 05:40:24 -05:00
Jeff Teunissen 5c8cb8fec8 Move private Array methods into main file
#if 0 out the "normal" implementation, so that it doesn't hurt. When it
becomes possible to have the private Array methods separate, remove them
from the main file and remove the #if 0 block from Array+Private.r.
2010-12-12 05:39:17 -05:00
Bill Currie c08c072da7 Make ruamoko docs build properly in out-of-tree builds. 2010-12-12 14:20:23 +09:00
Jeff Teunissen 22dd7cd20d Avoid wasting a local and giving the compiler a minor aneurysm
qfcc doesn't yet like foo[bar++] = baz; let's be nice and not give it
indigestion.
2010-12-12 00:16:33 -05:00
Jeff Teunissen 0371a825b8 Damn, documented wrong method. 2010-12-11 23:49:48 -05:00
Jeff Teunissen f13c45a9ae kill extra reference to Array in docs 2010-12-11 23:45:48 -05:00
Jeff Teunissen 537915f5bc Ruamoko: Document AutoreleasePool 2010-12-11 23:45:19 -05:00
Jeff Teunissen b45ff85f0c Add doxyfile for Ruamoko lib
Whee, Rua docs!
2010-12-11 23:44:11 -05:00
Jeff Teunissen 8d05b07a26 remove empty -release in AutoreleasePool. 2010-12-11 23:32:04 -05:00
Jeff Teunissen 180450e785 declare ARP_FreeAllPools() @extern 2010-12-11 23:23:55 -05:00
Jeff Teunissen c58a72842f Update users of Array to new API 2010-12-11 20:32:19 -05:00
Jeff Teunissen 505076a98d rewrite Array, AutoreleasePool
This version is a bit more useful, and we should be able to get rid of the
Stack class. Also, the Ruamoko parts of the autorelease system should be
almost ready now.
2010-12-11 20:32:19 -05:00
Jeff Teunissen 4bd37e7b64 Switch to C-style function declarations.
Doxygen hates the QuakeC-style function prototypes we use, so switch to the
C-style prototypes.
2010-12-11 20:31:59 -05:00
Bill Currie 3b0dbd29ca make distcheck fixes 2010-12-06 21:24:49 +09:00
Bill Currie 32bf4aed2b get the message name right 2010-11-28 14:36:21 +09:00
Bill Currie 7ce1fc3be5 Break out all the classes into their own files. 2010-11-24 17:01:19 +09:00
Bill Currie 2b3ba0633e Break out the menu plist parser into its own file. 2010-11-24 17:01:19 +09:00
Bill Currie e471ddff47 Use the new file based property list API.
Also eleminate the menu_plist global (the plist does not hang around).
2010-11-24 17:01:19 +09:00
Bill Currie addbcaa09c Add PL_GetFromFile builtin.
This is an extension "wrapper" (no such C function). This allows ruamoko
programs to read property lists without worrying about the memory required
to store the string for the property list being read.
2010-11-24 17:01:19 +09:00
Bill Currie 857f8eb6e4 Get the plist controls menu mostly working.
The bindings menu is currently inaccessible.
2010-11-24 17:01:19 +09:00
Bill Currie 9c3c1b9ac1 Use @param instead of id to pass objects within the menu parser.
This allows mixed types (eg, objects and Rects). To be passed around. This
sorts out the changes needed for the conversion of Rect from object to
struct.
2010-11-24 17:01:19 +09:00
Bill Currie 730082a393 Make Group set its position (and those of its subviews) correctly. 2010-11-24 17:01:19 +09:00
Bill Currie e9fea12e47 Must return self in -autorelease 2010-11-24 17:01:19 +09:00
Bill Currie 3878b76cc5 Start using autorelease.
Much more testing is required (oh, but for qc-valgrind), but there is now
a ~945kB block of free data in the menu progs heap :).

Also, correct the printed size of the memory block to not include the
block header size.
2010-11-24 17:01:18 +09:00
Bill Currie 4518e6af91 First stab at implementing autorelease.
It's probably nowhere near right, but probably ok for now (I need to study
the GNUStep code). I'm unhappy with the menu code hook, but it will have
to do for now.
2010-11-24 17:01:18 +09:00
Bill Currie 7acf8c0570 Must retain before release. 2010-11-24 17:01:18 +09:00
Bill Currie 5fc4ef63f6 Rewrite ruamoko plist support to use handles.
The plist code was written long before I thought of resource handles, and
then it was forgotten. This is much nicer and safer than storing C
pointers in progs memory space (*shudder*).
2010-11-24 17:01:18 +09:00
Bill Currie c460e3c979 Fix setBasePos to get the pos from a view.
This fixes Group for the Point/Size/Rect change.
2010-11-24 17:01:18 +09:00
Bill Currie b0879ba255 Convert Point, Size and Rect to structs.
Group and the menu plist parser are currently broken.
2010-11-24 17:01:17 +09:00
Bill Currie 0dfff8fd58 ignore stuff 2010-08-07 10:42:09 +00:00
Bill Currie 997102fea8 audit the usage of "only"
There are still a few iffy places (notably around certain prepositions), but
the relevant sentences are now much easier to read.
2010-01-13 06:42:26 +00:00
Bill Currie 8abb9a69aa remove support for an optional = in struct/union declarations 2010-01-13 06:34:32 +00:00
Bill Currie ff61dbb329 fix some sillies with QFS_FileList
Use dynamic strings instead of temp strings for the list
2010-01-13 06:29:01 +00:00
Bill Currie 334f12e0cf fix some problems found by the new qfcc warning :) 2010-01-13 06:27:48 +00:00
Bill Currie 128faf773a give sprintf a real prototype 2010-01-13 06:25:38 +00:00
Bill Currie bffd9f208f more sounds in menus 2007-05-13 05:14:32 +00:00
Bill Currie 66ab41534c make the menu plist reading more efficient 2007-05-13 04:03:04 +00:00
Bill Currie d996c364b8 massively speedup savegame scanning (and bump the menu progs memory size again :/) 2007-05-13 03:56:08 +00:00
Bill Currie 72daa2fd2b add some sounds to the menus (not yet finished) 2007-05-07 12:17:12 +00:00
Bill Currie eae39106c4 undefine BUILTIN before defining it (boost's preprocessor didn't like that) 2007-04-07 11:31:19 +00:00
Bill Currie 6e77198b6f handle the new save files properly 2007-03-25 02:01:10 +00:00
Bill Currie c3bb363fb6 add controls settings (don't know if they work, or are used, but again, don't want to lose it) 2007-02-09 09:25:03 +00:00
Bill Currie 33f08b6a43 add QFS_Open and QFS_WOpen 2006-12-20 12:08:57 +00:00
Bill Currie de5bf80eb8 release the item after removing it from the array, rather than before 2006-12-20 11:33:40 +00:00
Bill Currie 809ce1fb82 fix some leak issues 2006-12-16 14:00:00 +00:00
Bill Currie 68e7b3199d add finding elements 2006-12-16 13:59:29 +00:00
Bill Currie 70ec9848e7 add PL_RemoveObjectForKey and make PL_D_AddObject take a normal C string for key instead of a pl string. 2006-12-09 06:00:36 +00:00
Bill Currie eeca330af2 whitespace 2006-12-02 06:51:41 +00:00
Bill Currie 175ad185c2 don't install main.dat* *taniwha beats snax over the head with a large trout 2005-09-07 00:33:11 +00:00
Bill Currie e257560174 print a message if menu.plist can't be opened 2005-08-18 00:28:14 +00:00
Bill Currie b7803030c4 some error handling :) 2005-08-18 00:25:09 +00:00
Bill Currie ddae3850e8 qf now, for the first time in history, fully passes "make distcheck" 2005-07-16 03:46:11 +00:00
Bill Currie fa8dfd3767 audio options are now scripted 2005-06-15 02:07:54 +00:00
Bill Currie 91d6607793 bah, forgot the important part of that fix :P 2005-06-15 02:03:50 +00:00
Bill Currie 6e0c70cac7 reduce the amount of memory needed to read menu.plist 2005-06-15 01:41:10 +00:00
Bill Currie be83a5f5c0 make sure the view being moved from viewlist to group doesn't get freed by
accident
2005-06-12 08:38:47 +00:00
Brian Koropoff fd54b1a245 Scheme: Make apply follow the R5RS standard. 2005-05-10 08:19:15 +00:00
Brian Koropoff 6a9adafa8d Added support for comments 2005-05-08 21:51:16 +00:00
Brian Koropoff ed0b29a0a0 Cons now allocates String objects when outputting string form. Added
support for begin expressions and tweaked the GC to be more aggressive.
2005-05-08 11:17:44 +00:00
Brian Koropoff 111df712fa String.[hr] -> SchemeString.[hr], for the sake of case-insensitive
filesystems.
2005-05-08 10:43:56 +00:00
Brian Koropoff 86606cc627 Added proper argument number checking to lambdas, a bunch more builtins,
a few misc optimizations.
2005-05-08 10:37:57 +00:00
Brian Koropoff 2ebd2e0c2a Scheme: The lexer now actually supports true/false constants. 2005-05-08 10:14:27 +00:00
Brian Koropoff e8680d792e Added runtime error checking and line number tracking. Seems to catch most
Scheme program errors without making Rua abort now, although there are a
few things that still need to actually report errors instead of failing
in weird ways.
2005-05-08 06:38:01 +00:00
Brian Koropoff bc73af37f2 Scheme: Added letrec, first-class continuations, and tuned the garbage
collector a bit.
2005-05-08 03:44:18 +00:00
Bill Currie 69bf8f3941 wow, when I screw up... :)
fix the broken bindings menus
2005-05-07 08:28:44 +00:00
Brian Koropoff adba6b26dc Scheme updates:
- Boolean type (no support in lexer yet)
	- Conditionals
	- Defines (only work correctly at top level)
	- More core builtins (apply, cons, car, cdr)
	- Variable-argument functions
	- Incremental garbage collection
	- Garbage collection fixes
	- Other misc bugs fixed
2005-05-06 23:25:06 +00:00
Brian Koropoff 5378a850b4 Bug fixes: initializes properly, releases overwritten elements, doesn't
try to free null pointers
2005-05-06 23:06:50 +00:00
Bill Currie 5ee4ec8421 Array now requires its elements to be Objects 2005-05-02 06:29:44 +00:00
Brian Koropoff 256630c84d Added proper error checking and reporting with line numbers. Next:
Runtime errors and support for line number reporting with the error.
2005-05-02 04:58:22 +00:00
Brian Koropoff 438073e110 Bug fixes, plus a first stab at the garbage collector. It *seems* to work
properly so far.
2005-05-02 02:33:44 +00:00
Brian Koropoff 5130545c72 Array now properly retains/releases objects it stores. 2005-05-02 02:32:03 +00:00
Bill Currie 0213efb331 sv_recorder seems to be ready for qtv :) 2005-05-02 00:45:25 +00:00
Brian Koropoff 281b683e14 Initial commit of a future partial implementation of the R5RS Scheme
standard, implemented in Ruamoko.  Currently works for a few simple
"Hello, world!" programs.
2005-05-01 11:48:36 +00:00
Bill Currie a35c33b397 finish ProxyView and get crosshair toggle working properly in the video
options menu.
2005-04-24 15:26:30 +00:00
Bill Currie 73e45cc8ee working on scripted menus; video works
dealloc -> release

This is an imperfect revision of history.
2004-11-18 05:08:00 +00:00
Bill Currie 3a7ecf9f31 enable obj_sendv
This is an imperfect revision of history.
2004-11-17 21:27:00 +00:00
Bill Currie 96e20d891c overload str_mid so it has the same semantics as Python's slice operator
This is an imperfect revision of history.
2004-11-14 00:53:00 +00:00
Bill Currie 7a217b81cd add a PropertyList class hierarchy
This is an imperfect revision of history.
2004-11-13 01:55:00 +00:00
Bill Currie f5b22f50e8 and the ruamoko side of entity parsing :) currently disabled for now (just need to uncomment the line in Entity's +load) due to lack of filtering, but as a proof of concept, it works quite well, though I'm not at all happy about the handling of world.
This is an imperfect revision of history.
2004-11-12 11:23:00 +00:00
Bill Currie 53f4d13f43 wrap the plist functions
This is an imperfect revision of history.
2004-11-11 22:42:00 +00:00
Bill Currie 5ef382d2a7 Add a rua wrapper for scripts (seems, to work, too:). Also added generic resource handle support based on strref handling in pr_strings.c.
This is an imperfect revision of history.
2004-11-11 04:06:00 +00:00
Bill Currie 7b4edb2859 it's "dealloc", not "free" (missed name changes from a while back)
This is an imperfect revision of history.
2004-11-11 01:31:00 +00:00
Bill Currie 64cc8c60d2 compile time protocol support seems to be complete now. fortunatly, protocols had never been written out so the corrections to the protocol related stuctures do not need a progs version bump. runtime protocol support hasn't been fully tested yet.
+load runtime support seems to be working.

This is an imperfect revision of history.
2004-11-11 00:34:00 +00:00
Bill Currie 6ad13faf98 fix a param name oopsie
This is an imperfect revision of history.
2004-11-10 04:09:00 +00:00
Bill Currie a3a2dd62e3 fix type of "self"
This is an imperfect revision of history.
2004-11-02 07:13:00 +00:00
Jeff Teunissen 2842f4d4f1 Ruamoko builtin declaration/implementation cleanup/simplification. Incomplete,
but working.
2004-04-28 00:42:38 +00:00
Bill Currie 204618da66 make dist fix 2004-04-22 02:49:50 +00:00
Bill Currie 804ba76719 add bindings for the qfs functions 2004-04-20 23:01:54 +00:00
Bill Currie 4afe0c1588 move hash.r and plist.r to libr where they belong 2004-02-25 02:38:15 +00:00
Bill Currie 8069becadf pkgincludedir and pkglibdir patch from
"Alexey I. Froloff" <sir_raorn@immo.ru> (raorn)
2004-02-18 06:28:37 +00:00
Bill Currie 82bc3055bc oops, needed menu_draw_hud. don't need the state stuff any more, though :) 2004-02-14 05:33:34 +00:00
Bill Currie c493a82de1 more cleanup 2004-02-14 05:02:25 +00:00
Bill Currie 98ccba65bb not needed 2004-02-14 04:51:08 +00:00
Bill Currie 1207b44462 whitespace 2004-02-14 04:35:59 +00:00
Bill Currie 790048368d control options "done" 2004-02-14 04:01:36 +00:00
Bill Currie 3f44dfad1d control options menu almost done (yay for oo:) 2004-02-14 03:18:53 +00:00
Bill Currie 103299e7e4 rename Cvar_GetCvarString to Cvar_GetString and add
Cvar_Set{String,Float,Integer,Vector} and
Cvar_Get{String,Float,Integer,Vector}. use them in the menus
2004-02-14 02:56:29 +00:00
Bill Currie 0e147a7b61 video options "done" 2004-02-14 02:09:18 +00:00
Bill Currie fec7423cc3 player options are now grouped 2004-02-13 06:42:51 +00:00
Bill Currie 0e34eabbc4 network options are now in a group 2004-02-13 05:49:43 +00:00
Bill Currie 8978d1ca55 make an inputline with a text box behind it 2004-02-13 05:36:35 +00:00
Bill Currie ac577232db audio and features options menus are now almost fully object-ized (as
close as they're going to get until everything else is)
2004-02-13 02:53:13 +00:00
Bill Currie e3a393dd52 add Pic and CenterPic views 2004-02-13 02:52:14 +00:00
Bill Currie e472364f51 call [self init] rather than [super init] (and variants where possible) to
ease derived class initialization (all allocation can be done in -init).
Objective-C rocks :)
2004-02-13 02:51:38 +00:00
Bill Currie de567310fb fix a typo 2004-02-13 01:21:17 +00:00
Bill Currie c5789ff620 more object usage 2004-02-13 00:21:51 +00:00
Bill Currie 9f56ee80c6 arg, committed debug code again 2004-02-07 00:10:39 +00:00
Bill Currie 51cd2fc69a most of the video menu now uses CvarToggle and CvarToggleView (and rename
RangeSlider to CvarRangeView)
2004-02-07 00:09:50 +00:00
Bill Currie f4e0147345 missed Slider.h 2004-02-04 23:26:39 +00:00
Bill Currie bc6204335a now all range indicators use the RangeSlider view (need a better name:P) 2004-02-04 07:14:00 +00:00
Bill Currie c3d99b47a7 in_mouse_amp finally working properly :)
forced to move to CMV for the indicator because I ran out of params...
2004-02-04 06:56:53 +00:00
Bill Currie c43950abd8 autoconvert for function parameters now works :) 2004-02-04 05:49:54 +00:00
Bill Currie a128d7121b install the gui headers properly 2004-02-04 05:45:17 +00:00
Bill Currie 892e80938b that made a royal mess :( 2004-02-04 04:49:46 +00:00
Bill Currie b2474a2b97 better auto-conversion of function parameters (ugh, this is getting messy
:( )
2004-02-04 04:33:08 +00:00
Bill Currie 237027d1ff moving towards object-ized menus :) 2004-02-04 02:35:57 +00:00
Bill Currie fb9c3e6125 Object error doesn't return anything... 2004-02-04 00:56:33 +00:00
Bill Currie c74adc29b0 all slider indicators now use Slider. nuke draw_perc_bar 2004-02-03 13:35:10 +00:00
Bill Currie 0e0f3704c5 correct the math for calculating the position of the slider indicator 2004-02-03 13:33:16 +00:00
Bill Currie ec26083228 start working on a gui lib with a Slider class. use the slider class for
the volume settings. doesn't /quite/ work properly yet
2004-02-03 08:31:26 +00:00
Bill Currie 888ff5f571 make the math functions Grievre provided available 2004-02-03 06:24:43 +00:00
Bill Currie a4bcf2dab6 hopefully better library arrangement 2004-02-03 06:00:16 +00:00
Bill Currie 1542268d40 use casts rather than ftoi and itof 2004-02-03 05:59:51 +00:00
Bill Currie 73b226b4b7 fix the key bindings menus (invalid strings) and add a music volume knob 2004-01-22 01:33:27 +00:00
Bill Currie b3f76e1e48 add some string builtins (only the basics for now, but enough to deal with
temporary strings) and fix the game load/save menus.
2004-01-07 07:36:17 +00:00
Bill Currie 9c92a916ff change the dict and array add functions to return true/false and add some
more docs
2004-01-07 06:19:11 +00:00
Bill Currie 380e397d5b set all of our static builtin extentions to 0x000fxxxx. fixes the invalid
builtin crash in menus
2004-01-07 00:04:07 +00:00
Bill Currie 6f1dd54e99 quick and dirty fix to get menus loading again. libr.a really needs to be
cleaned up: most of the stuff in it should /not/ be in the standard library
2004-01-05 09:06:06 +00:00
Bill Currie 8593c1bc53 show_* -> hud_*. Thanks for the headsup, IrcMonkey 2003-09-23 21:49:34 +00:00
Brian Koropoff 687a0845b6 Introducing the GIB Object System (TM). This breaks scriptable HUD for now
and probably has enough bugs to leave the Orkin man scratching his head,
but it works and allows you to do neat things like write classes in GIB
(amazing!) and subclass builtin classes (which are Object and Thread at the
moment, Hash should be coming soon as a replacement for stem and leaf
variables).
2003-09-11 06:03:13 +00:00
Bill Currie 8b36ae6c00 bunch of bug fixes. rather important part of the bot fixes (oops:) 2003-09-03 01:27:57 +00:00
Bill Currie 7ff9f32706 uncomment some functions that may or may not get implemented 2003-08-23 06:12:10 +00:00
Bill Currie a48b2dd103 fix some errors picked up by the recent changes to qfcc 2003-08-22 06:34:09 +00:00
Bill Currie ac330a32c2 remove @extern from definitions 2003-08-20 22:36:35 +00:00
Bill Currie 054d2b61e8 correct the vertical position of the lanconfig menu 2003-08-20 05:43:24 +00:00
Bill Currie 27306a9a2b correct the prototypes for the hash functions (oops:) 2003-08-19 21:10:19 +00:00
Bill Currie 5a944f4098 add Stack.h 2003-08-03 19:10:12 +00:00
Bill Currie dd9ab1e050 get unsigned mostly working 2003-08-01 21:20:04 +00:00
Bill Currie fd15377532 unsigned is partially implemented... 2003-08-01 17:38:52 +00:00
Bill Currie 908a3dab29 fix a bunch of FIXMEs now that qfcc has been fixed for these items 2003-08-01 16:37:44 +00:00
Bill Currie 6ecb707257 revamp the struct system so "struct foo;" does the right thing (ala C) 2003-07-30 04:11:45 +00:00
Bill Currie da86367824 update for recent changes to Object 2003-07-29 19:55:41 +00:00
Jeff Teunissen d05f17cdae Re-add -autorelease to the Object protocol. 2003-07-29 18:23:44 +00:00
Jeff Teunissen 7713a539ca Okay, y'all...the Ruamoko root class, Object, has been replaced with another
class with the same name. This will break things. To support it, there are
three new classes, one of which is incomplete (AutoreleasePool). It'll get
finished soonish, but the rest of the class lib will need some updating to
work.
2003-07-29 18:02:03 +00:00
Bill Currie f2ad4dea7b add removeItemAtHead and removeItemAtTail 2003-07-29 17:43:42 +00:00
Bill Currie ef1b68e697 add a List class 2003-07-29 16:01:35 +00:00
Bill Currie 673f6ba643 add itterators and make -free actually free the Array object 2003-07-24 20:50:40 +00:00
Bill Currie ba19ee1120 clear the current menu so going to console via the menus doesn't screw
things up
2003-06-06 18:57:56 +00:00
Bill Currie 54e8cb1cb2 make dist fix (again:/) 2003-06-04 20:32:10 +00:00
Bill Currie 0c42b0f644 make dist fix 2003-06-04 18:50:54 +00:00
Bill Currie e8c28cc3f3 fix some incompatable pointer types 2003-05-23 20:12:38 +00:00
Brian Koropoff c5be2fb501 OK, I think I need caffeine. This time, the Array class is really switched
over to using ids.
2003-05-23 04:38:08 +00:00
Brian Koropoff 3205f0f672 Added the HUDAnimation class and GIB bindings to use it, as well as other
enhancements and cleanups to the scriptable HUD system.
2003-05-23 04:29:01 +00:00
Brian Koropoff f9ff908157 Changed the Array class to use object ids instead of null pointers for easy
and safe freeing of elements when an Array is disposed.
2003-05-23 04:27:30 +00:00
Brian Koropoff dcf1bcf141 HUD interface leak fixes and enhancements. Something is still leaking
memory, though.
2003-05-15 06:49:10 +00:00