Bill Currie
b3850bbc69
[qwaq] Implement blitting from draw buffer to text
...
Sending the data out to curses.
2020-03-10 19:23:51 +09:00
Bill Currie
f91fb4f840
[qwaq] Add an mvwblit_line builtin
...
I had to do my own thing with curses as the function I had planned to
use turned out to be quite different from what I wanted (misread the man
page).
2020-03-10 18:21:06 +09:00
Bill Currie
694ad2e840
[ruamoko] Add str_char builtin
...
This returns the character (as an int) at the index. Equivalent to
string[index], but qc code doesn't have char-level access and not having
it means that strings can internally change to wchar without too much
fuss (maybe).
2020-03-10 18:16:55 +09:00
Bill Currie
1b1249bdb0
[ruamoko] Add vsprintf builtin
2020-03-10 18:16:07 +09:00
Bill Currie
b517b95e45
[libr] Add -performv::
2020-03-10 14:29:43 +09:00
Bill Currie
fb92ee12d6
[qwaq] Set event type to none when no events
...
Fixes the endless looping on the last event.
2020-03-10 03:11:21 +09:00
Bill Currie
f9d798c314
[qwaq] Use forwarding for some text methods
...
refresh won't be in the drawing buffer protocol, and the move commands
need to be offset by the view's position in its window, but it works as
intended.
2020-03-10 02:58:30 +09:00
Bill Currie
e9eab68366
[qwaq] Begin work on local drawing buffers
2020-03-10 02:39:18 +09:00
Bill Currie
4978713dee
[libr] Add __obj_responds_to proto and definition
2020-03-10 00:09:46 +09:00
Bill Currie
a487595149
[ruamoko,libr] Begin implementation of __obj_forward
...
libr supplies an __obj_forward definition that links to a builtin, but
as it is the only def in its object file, it is readily replaceable by
an alternative Ruamoko implementation.
The builtin version currently simply errors out (rather facetiously),
but only as a stub to allow progs to load.
2020-03-09 19:09:08 +09:00
Bill Currie
0780cca496
[qwaq] Fixed swapped method implementations
...
That was fun
2020-03-08 22:21:15 +09:00
Bill Currie
8fc007648c
[qwaq] Add missed command enum string
2020-03-08 22:20:46 +09:00
Bill Currie
89cf9f9523
[qwaq] Use Sys_Printf for load error messages
...
It gets them into the log file.
2020-03-08 22:19:37 +09:00
Bill Currie
bb0e65e9d4
[cl_menu] Silence some debug output
2020-03-08 21:45:51 +09:00
Bill Currie
f0ecf7b30a
[qwaq] Clean out log file with make clean
2020-03-06 20:43:38 +09:00
Bill Currie
1250fe7446
[qwaq] Use a log file instead of stderr
...
Now I don't have to worry about remembering to redirect the output, but
debugging is still easy.
2020-03-06 18:29:16 +09:00
Bill Currie
b8b74fc074
[qwaq] Implement missing addch
...
I either forgot about it, or just didn't need it at the time, but I'm
sure it will be useful later when more stuff is implemented.
2020-03-06 17:57:33 +09:00
Bill Currie
9a96a9b2c9
[qwaq] Use own version of positional drawing in Window
...
Double offsetting the prints doesn't quite look right ;)
2020-03-06 17:46:36 +09:00
Bill Currie
d0a249590c
[qwaq] Use self where possible for drawing in Window
2020-03-06 17:45:58 +09:00
Bill Currie
bea64838cc
[qwaq] Use new TextContext
...
Not quite right yet, but it worked first try (once I got another
compiler bug sorted).
2020-03-06 17:38:27 +09:00
Bill Currie
ba9c43d2d3
[qwaq] Create a TextContext class
...
It is essentially just a wrapper around the window versions of ncurses
functions.
2020-03-06 13:54:46 +09:00
Bill Currie
40ae7a7f19
[qwaq] Implement ofDontDraw
...
The conditional selector performance seems to work nicely, but I've
found a mistake with View.window (partly, realizing why my old lib (and
probably TV in the first place) had separate textContext and buffers
between views and groups).
2020-03-06 11:53:40 +09:00
Bill Currie
6bf2fd546d
[qwaq] Extend Array makeObjectsPerform methods
...
Added conditional message sending and reversed traversal of the array.
2020-03-06 11:27:31 +09:00
Bill Currie
ad4cde15b5
[qwaq] Get Window working
...
It even draws a border around itself.
2020-03-06 00:32:09 +09:00
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