Compare commits
3 Commits
9ea5af67ae
...
56-doxygen
| Author | SHA1 | Date | |
|---|---|---|---|
|
809a9bf64d
|
|||
|
ae2c702c2b
|
|||
|
5c58f4c16d
|
1
Doxyfile
1
Doxyfile
@@ -12,3 +12,4 @@ WARN_AS_ERROR = FAIL_ON_WARNINGS
|
||||
GENERATE_HTML = YES
|
||||
GENERATE_LATEX = NO
|
||||
QUIET = YES
|
||||
DOT_GRAPH_MAX_NODES = 100
|
||||
|
||||
@@ -296,7 +296,7 @@ typedef struct
|
||||
*
|
||||
* Claimed up front rather than per scan for two reasons. The pool is shared
|
||||
* with whatever host this interpreter is embedded in -- a game with its own
|
||||
* shaped actors draws from the same #AKGL_MAX_HEAP_COLLISION_PROXY -- so
|
||||
* shaped actors draws from the same `AKGL_MAX_HEAP_COLLISION_PROXY` -- so
|
||||
* running out is a real possibility, and it should be an init-time failure
|
||||
* naming the pool rather than a collision scan that starts refusing halfway
|
||||
* through a game. And a proxy carries a *copy* of its shape, so there is
|
||||
|
||||
@@ -832,13 +832,6 @@ akerr_ErrorContext AKERR_NOIGNORE *akbasic_runtime_reserve_globals(akbasic_Runti
|
||||
* @throws AKBASIC_ERR_BOUNDS When every variable slot is in use.
|
||||
*/
|
||||
akerr_ErrorContext AKERR_NOIGNORE *akbasic_runtime_new_variable(akbasic_Runtime *obj, akbasic_Variable **dest);
|
||||
/**
|
||||
* @brief Take an unused function definition from the runtime's pool.
|
||||
* @param obj Object to initialize, inspect, or modify.
|
||||
* @param dest Output destination populated by the function.
|
||||
* @return `NULL` on success, otherwise an error context owned by the caller.
|
||||
* @throws AKBASIC_ERR_BOUNDS When every function slot is in use.
|
||||
*/
|
||||
/**
|
||||
* @brief Call a user-defined function with values a caller already has.
|
||||
*
|
||||
@@ -865,6 +858,13 @@ akerr_ErrorContext AKERR_NOIGNORE *akbasic_runtime_new_variable(akbasic_Runtime
|
||||
*/
|
||||
akerr_ErrorContext AKERR_NOIGNORE *akbasic_runtime_call_function(struct akbasic_Runtime *obj, const char *name, akbasic_Value **args, int nargs, akbasic_Value **dest);
|
||||
|
||||
/**
|
||||
* @brief Take an unused function definition from the runtime's pool.
|
||||
* @param obj Object to initialize, inspect, or modify.
|
||||
* @param dest Output destination populated by the function.
|
||||
* @return `NULL` on success, otherwise an error context owned by the caller.
|
||||
* @throws AKBASIC_ERR_BOUNDS When every function slot is in use.
|
||||
*/
|
||||
akerr_ErrorContext AKERR_NOIGNORE *akbasic_runtime_new_function(akbasic_Runtime *obj, akbasic_FunctionDef **dest);
|
||||
/**
|
||||
* @brief File one already-scanned source line under its line number.
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
* with headroom. The ceiling matters because these come out of libakgl's
|
||||
* collision proxy pool, which is shared with whatever host this interpreter is
|
||||
* embedded in: eight sprites plus sixty-four solids is seventy-two of
|
||||
* #AKGL_MAX_HEAP_COLLISION_PROXY, and the rest is the host's.
|
||||
* `AKGL_MAX_HEAP_COLLISION_PROXY`, and the rest is the host's.
|
||||
*/
|
||||
#ifndef AKBASIC_MAX_SOLIDS
|
||||
#define AKBASIC_MAX_SOLIDS 64
|
||||
@@ -117,7 +117,7 @@ typedef struct
|
||||
int speed; /* clockwise from vertical, and 0-15 */
|
||||
|
||||
/**
|
||||
* SPRHIT's collision shape: one of the #AKBASIC_SHAPE_* kinds, and a
|
||||
* SPRHIT's collision shape: one of the `AKBASIC_SHAPE_*` kinds, and a
|
||||
* rectangle measured from the sprite's top-left corner.
|
||||
*
|
||||
* `shapeexplicit` is what separates "the program asked for the whole frame"
|
||||
|
||||
@@ -48,6 +48,7 @@ static akerr_ErrorContext *is_at_end(akbasic_Runtime *obj, bool *dest)
|
||||
|
||||
/**
|
||||
* @brief The character under the cursor.
|
||||
* @param obj The runtime whose scan cursor is being read.
|
||||
* @param[out] dest The character. Untouched when there is none.
|
||||
* @param[out] got Whether there was one. The old `bool` return.
|
||||
*/
|
||||
@@ -70,6 +71,7 @@ static akerr_ErrorContext *peek(akbasic_Runtime *obj, char *dest, bool *got)
|
||||
|
||||
/**
|
||||
* @brief The character one past the cursor.
|
||||
* @param obj The runtime whose scan cursor is being read.
|
||||
* @param[out] dest The character. Untouched when there is none.
|
||||
* @param[out] got Whether there was one. The old `bool` return.
|
||||
*/
|
||||
@@ -145,6 +147,10 @@ static akerr_ErrorContext *add_token(akbasic_Runtime *obj, akbasic_TokenType tok
|
||||
|
||||
/**
|
||||
* @brief Consume one more character when it matches, choosing between two token types.
|
||||
* @param obj The runtime whose scan cursor is being advanced.
|
||||
* @param cm The character that must be next for the match to succeed.
|
||||
* @param truetype The token type to report when @p cm matches.
|
||||
* @param falsetype The token type to report when it does not.
|
||||
* @param[out] matched Whether the character was consumed. The old `bool` return.
|
||||
*
|
||||
* On the chain below `peek`, so it reports the same way. See libakstdlib #38.
|
||||
|
||||
@@ -875,7 +875,7 @@ static akerr_ErrorContext AKERR_NOIGNORE *run_scan(akbasic_AkglSprites *state)
|
||||
* proxy carries the owner only so a resolver can push something. Nothing here
|
||||
* resolves anything, so the field stays empty and the shape is what matters.
|
||||
*
|
||||
* Layers are the other half. A wall sits on #AKGL_COLLISION_LAYER_STATIC and
|
||||
* Layers are the other half. A wall sits on `AKGL_COLLISION_LAYER_STATIC` and
|
||||
* responds to nothing, which is the asymmetry libakgl's masks exist for: the
|
||||
* sprite's own `collidemask` includes STATIC, so a sprite finds a wall and two
|
||||
* walls never test against each other. Sixty-four motionless rectangles
|
||||
|
||||
Reference in New Issue
Block a user