Emdashless

This commit is contained in:
2026-06-07 21:27:59 -05:00
parent dc41c0e302
commit be68fe5a35
40 changed files with 117 additions and 107 deletions
+10
View File
@@ -233,6 +233,16 @@ apply any changes before finishing the task.
## Coding style
### ASCII only
Source files (`.c`, `.h`, `.js`) must contain only ASCII characters (U+0000U+007F).
Non-ASCII characters are banned even in comments and string literals.
Use ASCII-only substitutes instead:
- `--` or `-` instead of `` (em dash)
- `->` instead of `` (arrow)
- `x` or `*` instead of `×` (multiplication)
Only non-script asset files (e.g. `.po` locale files) may contain non-ASCII text.
### Indentation
2 spaces. No tabs.
+2 -2
View File
@@ -22,8 +22,8 @@ player.create = function(texEntry) {
r.texture = texEntry.texture;
r.type = Renderable.SPRITEBATCH;
r.color = new Color(220, 80, 80);
// upright quad: (-0.5,0,0) (0.5,1,0) in XY plane
r.sprites = [[-0.5, 0, 0, 0.5, 1, 0, 0, 0, 1, 1]];
// upright quad: (-0.5,0,0) -> (0.5,1,0) in XY plane
r.sprites = [[-0.5, 0, 0, 0.5, 1, 0, 0, 1, 1, 0]];
_position.localPosition = new Vec3(0, 1, 0);
};
+3 -3
View File
@@ -11,7 +11,7 @@ var assets = AssetBatch([
]);
// Pokemon DS-style camera: ~34 degrees elevation (atan(6/9)).
// CAM_HEIGHT / CAM_DIST ratio controls the tilt keep it under 0.7 for
// CAM_HEIGHT / CAM_DIST ratio controls the tilt - keep it under 0.7 for
// the characteristically shallow DS angle.
const CAM_HEIGHT = 6;
const CAM_DIST = 9;
@@ -38,7 +38,7 @@ scene.init = async function() {
camPos = cam.add(Component.POSITION);
cam.add(Component.CAMERA);
// Floor infinite static plane at Y=0. Rendered as a large flat blue
// Floor - infinite static plane at Y=0. Rendered as a large flat blue
// slab using the default SHADER_MATERIAL (no texture needed).
floorEntity = Entity.create();
var floorPos = floorEntity.add(Component.POSITION);
@@ -51,7 +51,7 @@ scene.init = async function() {
floorPos.localScale = new Vec3(16, 0.2, 16);
floorPos.localPosition = new Vec3(0, -0.1, 0);
// Player spawns 1 unit above the floor so physics drops it cleanly.
// Player - spawns 1 unit above the floor so physics drops it cleanly.
player.create(texEntry);
// Initialise camera at the correct angle from the player's spawn position.
+1 -1
View File
@@ -56,7 +56,7 @@ errorret_t assetInit(void);
bool_t assetFileExists(const char_t *filename);
/**
* Gets, or creates, a new asset entry. Internal prefer assetLock.
* Gets, or creates, a new asset entry. Internal - prefer assetLock.
*
* @param name Filename of the asset.
* @param type Type of the asset.
+1 -1
View File
@@ -86,7 +86,7 @@ void assetBatchInit(
);
if(batch->entries[i]->state == ASSET_ENTRY_STATE_LOADED) {
/* Already loaded (cached) count it now, no subscription needed. */
/* Already loaded (cached) - count it now, no subscription needed. */
batch->loadedCount++;
} else if(batch->entries[i]->state == ASSET_ENTRY_STATE_ERROR) {
batch->errorCount++;
@@ -11,7 +11,7 @@
typedef struct assetloading_s assetloading_t;
typedef struct assetentry_s assetentry_t;
/** Input passed to the locale loader currently unused. */
/** Input passed to the locale loader - currently unused. */
typedef struct { void *nothing; } assetlocaleloaderinput_t;
typedef enum {
@@ -100,7 +100,7 @@ typedef struct {
uint8_t pluralDefaultIndex;
} assetlocalefile_t;
/** Convenience alias the loaded output type of a locale asset entry. */
/** Convenience alias - the loaded output type of a locale asset entry. */
typedef assetlocalefile_t assetlocaleoutput_t;
/**
+1 -1
View File
@@ -47,7 +47,7 @@ errorret_t spriteBatchInit();
/**
* Lowest-level buffer function. Writes sprites into the internal vertex buffer.
* Flushes automatically when the per-flush capacity is reached. Does not
* modify material state call spriteBatchSetState or use a high-level push
* modify material state - call spriteBatchSetState or use a high-level push
* function before buffering.
*
* @param sprites Pointer to the sprite array.
@@ -64,7 +64,7 @@ static void entityPositionEnsureWorld(entityposition_t *pos) {
entityPositionEnsureLocal(pos);
if(pos->parentEntityId != ENTITY_ID_INVALID) {
// Parented: world = parent.world × local. worldTransform must be written
// Parented: world = parent.world x local. worldTransform must be written
// because children (and this node's getters) read it.
entityposition_t *parent = componentGetData(
pos->parentEntityId, pos->parentComponentId, COMPONENT_TYPE_POSITION
@@ -369,11 +369,11 @@ void entityPositionSetWorldRotation(
// gimbal = stored[0][1], stored[1][1] = math[1][0], math[1][1]
const float_t lr00 = pr00*wr00 + pr01*wr10 + pr02*wr20; // math[0][0]
const float_t lr10 = pr00*wr01 + pr01*wr11 + pr02*wr21; // math[0][1]
const float_t lr20 = pr00*wr02 + pr01*wr12 + pr02*wr22; // [0][2] sinBeta
const float_t lr20 = pr00*wr02 + pr01*wr12 + pr02*wr22; // [0][2] -> sinBeta
const float_t lr01 = pr10*wr00 + pr11*wr10 + pr12*wr20; // math[1][0]
const float_t lr11 = pr10*wr01 + pr11*wr11 + pr12*wr21; // math[1][1]
const float_t lr21 = pr10*wr02 + pr11*wr12 + pr12*wr22; // [1][2] r21
const float_t lr22 = pr20*wr02 + pr21*wr12 + pr22*wr22; // [2][2] r22
const float_t lr21 = pr10*wr02 + pr11*wr12 + pr12*wr22; // [1][2] -> r21
const float_t lr22 = pr20*wr02 + pr21*wr12 + pr22*wr22; // [2][2] -> r22
const float_t sinBeta = glm_clamp(lr20, -1.0f, 1.0f);
pos->rotation[1] = asinf(sinBeta);
@@ -38,7 +38,7 @@
typedef struct {
/*
* Hot fields flag checks, parent/child traversal (markDirty, ensureWorld)
* Hot fields - flag checks, parent/child traversal (markDirty, ensureWorld)
* only touch these. Kept at the front so they share the first cache line.
*/
@@ -56,7 +56,7 @@ typedef struct {
componentid_t childComponentIds[ENTITY_POSITION_CHILDREN_MAX];
/*
* Warm fields read/written by PRS getters/setters.
* Warm fields - read/written by PRS getters/setters.
* Accessed more often than the matrices but less often than flags.
*/
@@ -68,7 +68,7 @@ typedef struct {
vec3 scale;
/*
* Cold fields only touched when actually rebuilding transforms.
* Cold fields - only touched when actually rebuilding transforms.
*/
/** Local transform matrix, rebuilt lazily from position/rotation/scale. */
+1 -1
View File
@@ -23,6 +23,6 @@ typedef enum {
* Converts a facing direction to a normalized XZ vec2.
*
* @param facing The facing direction.
* @param dest Output vec2 [0] is X, [1] is Z.
* @param dest Output vec2 - [0] is X, [1] is Z.
*/
void facingDirToVec2(facingdir_t facing, vec2 dest);
+1 -1
View File
@@ -44,7 +44,7 @@ void physicsWorldStep(const float_t dt) {
physBodies[i] = entityPhysicsGet(physEnts[i], physComps[i]);
}
/* Phase 1: integrate dynamic bodies (gravity + velocity position).
/* Phase 1: integrate dynamic bodies (gravity + velocity -> position).
* Writes directly to pos->position, matrix rebuilt at end. */
for(entityid_t i = 0; i < physCount; i++) {
if(!positions[i]) continue;
+1 -1
View File
@@ -25,6 +25,6 @@ typedef struct {
char_t header[SAVE_FILE_HEADER_SIZE];
/** Format version read from the file; used to branch on older layouts. */
uint32_t version;
/** Runtime flag true if this slot was successfully loaded or written. */
/** Runtime flag - true if this slot was successfully loaded or written. */
bool_t exists;
} savefile_t;
@@ -16,7 +16,7 @@
extern scriptproto_t MODULE_ANIMATION_PROTO;
/**
* new Animation(keyframes) creates an Animation from a JS array of
* new Animation(keyframes) - creates an Animation from a JS array of
* `{time, value, easing?}` descriptor objects.
*
* @param args[0] Array of keyframe descriptors.
@@ -24,7 +24,7 @@ extern scriptproto_t MODULE_ANIMATION_PROTO;
moduleBaseFunction(moduleAnimationCtor);
/**
* animation.getValue(time) interpolates the animation at `time`.
* animation.getValue(time) - interpolates the animation at `time`.
*
* @param args[0] Time in seconds (number).
* @return Interpolated float value.
@@ -12,7 +12,7 @@
extern scriptproto_t MODULE_EASING_PROTO;
/**
* Easing.apply(type, t) applies easing function `type` to normalized
* Easing.apply(type, t) - applies easing function `type` to normalized
* time `t` and returns the eased value.
*
* @param args[0] Easing type constant (EASING_*).
+4 -4
View File
@@ -17,13 +17,13 @@
extern scriptproto_t MODULE_ASSET_PROTO;
/**
* Asset.exists(path) returns true if the path exists in the asset archive.
* Asset.exists(path) - returns true if the path exists in the asset archive.
* @param args[0] Archive-relative path string.
*/
moduleBaseFunction(moduleAssetExists);
/**
* Asset.lock(path, type, input?) locks an asset entry and returns an
* Asset.lock(path, type, input?) - locks an asset entry and returns an
* AssetEntry. The entry begins loading in the background.
*
* @param args[0] Path string.
@@ -33,7 +33,7 @@ moduleBaseFunction(moduleAssetExists);
moduleBaseFunction(moduleAssetLock);
/**
* Asset.requireLoaded(entry) blocks until the entry is fully loaded.
* Asset.requireLoaded(entry) - blocks until the entry is fully loaded.
* @param args[0] An AssetEntry object.
* @return The same AssetEntry for chaining.
* @throws If the load fails.
@@ -41,7 +41,7 @@ moduleBaseFunction(moduleAssetLock);
moduleBaseFunction(moduleAssetRequireLoaded);
/**
* Asset.unlock(path) releases the asset lock for the given path.
* Asset.unlock(path) - releases the asset lock for the given path.
* Prefer entry.unlock() on the AssetEntry object directly.
* @param args[0] Path string originally passed to Asset.lock().
*/
@@ -22,7 +22,7 @@ typedef struct {
} jsassetbatch_t;
/**
* GC free callback disposes and frees the batch when the JS object is
* GC free callback - disposes and frees the batch when the JS object is
* garbage collected.
*
* @param ptr Native jsassetbatch_t pointer.
@@ -57,32 +57,32 @@ moduleBaseFunction(moduleAssetBatchGetIsLoaded);
moduleBaseFunction(moduleAssetBatchGetHasError);
/**
* requireLoaded() blocks until every entry is loaded.
* requireLoaded() - blocks until every entry is loaded.
* @return this for chaining.
* @throws If any entry fails to load.
*/
moduleBaseFunction(moduleAssetBatchRequireLoaded);
/**
* loaded() returns a Promise that resolves when all entries load, or
* loaded() - returns a Promise that resolves when all entries load, or
* rejects if any entry errors. Resolves immediately if already loaded.
*/
moduleBaseFunction(moduleAssetBatchLoaded);
/**
* lock() acquires one additional lock on every entry.
* lock() - acquires one additional lock on every entry.
* @return this for chaining.
*/
moduleBaseFunction(moduleAssetBatchLock);
/**
* unlock() releases all locks and disposes the batch. The object is
* unlock() - releases all locks and disposes the batch. The object is
* invalid after this call.
*/
moduleBaseFunction(moduleAssetBatchUnlock);
/**
* entry(index) returns the AssetEntry at index, adding an independent
* entry(index) - returns the AssetEntry at index, adding an independent
* lock.
* @param args[0] Index (number).
* @return AssetEntry, or undefined if out of range.
@@ -23,7 +23,7 @@ typedef struct {
} jsassetentry_t;
/**
* GC free callback releases the asset lock when the AssetEntry JS object
* GC free callback - releases the asset lock when the AssetEntry JS object
* is garbage collected.
*
* @param ptr Native jsassetentry_t pointer.
@@ -39,7 +39,7 @@ void moduleAssetEntryFree(void *ptr, jerry_object_native_info_t *info);
*/
jsassetentry_t *moduleAssetEntrySelf(const jerry_call_info_t *callInfo);
/** AssetEntry() constructor always throws; not directly instantiable. */
/** AssetEntry() constructor - always throws; not directly instantiable. */
moduleBaseFunction(moduleAssetEntryCtor);
/** @return Archive-relative path used as the cache key. */
@@ -62,13 +62,13 @@ moduleBaseFunction(moduleAssetEntryGetIsLoaded);
moduleBaseFunction(moduleAssetEntryGetTexture);
/**
* requireLoaded() blocks until the entry is LOADED or ERROR.
* requireLoaded() - blocks until the entry is LOADED or ERROR.
* @return this for chaining.
* @throws If the load fails.
*/
moduleBaseFunction(moduleAssetEntryRequireLoaded);
/** unlock() releases the asset lock immediately. */
/** unlock() - releases the asset lock immediately. */
moduleBaseFunction(moduleAssetEntryUnlock);
/** @return The onLoaded Event for this entry. */
@@ -81,7 +81,7 @@ moduleBaseFunction(moduleAssetEntryGetOnUnloaded);
moduleBaseFunction(moduleAssetEntryGetOnError);
/**
* loaded() returns a Promise that resolves when the entry loads, or
* loaded() - returns a Promise that resolves when the entry loads, or
* rejects on error. Resolves immediately if already loaded.
*/
moduleBaseFunction(moduleAssetEntryLoaded);
@@ -13,7 +13,7 @@
extern scriptproto_t MODULE_CONSOLE_PROTO;
/**
* Console.print(...args) concatenates all args tab-separated and prints
* Console.print(...args) - concatenates all args tab-separated and prints
* to the engine console.
*/
moduleBaseFunction(moduleConsolePrint);
@@ -21,7 +21,7 @@ typedef struct {
} jstexture_t;
/**
* GC free callback unlocks the asset entry when the Texture JS object is
* GC free callback - unlocks the asset entry when the Texture JS object is
* garbage collected.
*
* @param ptr Native jstexture_t pointer.
@@ -37,7 +37,7 @@ void moduleTextureFree(void *ptr, jerry_object_native_info_t *info);
*/
jstexture_t *moduleTextureSelf(const jerry_call_info_t *callInfo);
/** Texture() constructor always throws; not directly instantiable. */
/** Texture() constructor - always throws; not directly instantiable. */
moduleBaseFunction(moduleTextureCtor);
/** @return Texture width in pixels, or undefined if not loaded. */
+1 -1
View File
@@ -15,7 +15,7 @@ extern jerry_value_t MODULE_FRAME_PENDING[MODULE_FRAME_PENDING_MAX];
extern uint32_t MODULE_FRAME_PENDING_COUNT;
/**
* frame() returns a Promise that resolves at the start of the next frame.
* frame() - returns a Promise that resolves at the start of the next frame.
* Used as `await frame()` inside an async script loop.
*/
moduleBaseFunction(moduleFrameFrame);
@@ -22,7 +22,7 @@ extern moduletimeoutentry_t MODULE_TIMEOUT_PENDING[MODULE_TIMEOUT_PENDING_MAX];
extern uint32_t MODULE_TIMEOUT_PENDING_COUNT;
/**
* timeout(ms) returns a Promise that resolves after at least `ms`
* timeout(ms) - returns a Promise that resolves after at least `ms`
* milliseconds have elapsed. Used as `await timeout(500)`.
*
* @param args[0] Delay in milliseconds (number).
@@ -13,7 +13,7 @@
extern scriptproto_t MODULE_CAMERA_PROTO;
/** Camera() constructor always throws; not directly instantiable. */
/** Camera() constructor - always throws; not directly instantiable. */
moduleBaseFunction(moduleCameraCtor);
/** @return Entity ID that owns this camera component. */
@@ -14,7 +14,7 @@
extern scriptproto_t MODULE_POSITION_PROTO;
/** Position() constructor always throws; not directly instantiable. */
/** Position() constructor - always throws; not directly instantiable. */
moduleBaseFunction(modulePositionCtor);
/** @return Entity ID that owns this position component. */
@@ -60,14 +60,14 @@ moduleBaseFunction(modulePositionGetWorldScale);
moduleBaseFunction(modulePositionSetWorldScale);
/**
* lookAt(target, up?) orients the component toward a target point.
* lookAt(target, up?) - orients the component toward a target point.
* @param args[0] Vec3 target position.
* @param args[1] Optional Vec3 up vector (defaults to world up).
*/
moduleBaseFunction(modulePositionLookAt);
/**
* setParent(position?) parents this component to another Position, or
* setParent(position?) - parents this component to another Position, or
* unparents when called with null/undefined.
* @param args[0] Position component or null/undefined.
*/
@@ -15,7 +15,7 @@
extern scriptproto_t MODULE_RENDERABLE_PROTO;
/** Renderable() constructor always throws; not directly instantiable. */
/** Renderable() constructor - always throws; not directly instantiable. */
moduleBaseFunction(moduleRenderableCtor);
/** @return Entity ID that owns this renderable component. */
@@ -59,7 +59,7 @@ moduleBaseFunction(moduleRenderableSetTexture);
moduleBaseFunction(moduleRenderableGetSprites);
/**
* Sets sprite data. Accepts an array of sub-arrays 10 elements (3D) or
* Sets sprite data. Accepts an array of sub-arrays - 10 elements (3D) or
* 8 elements (2D, z defaults to 0).
* @param args[0] Array of sprite sub-arrays.
*/
@@ -14,7 +14,7 @@
extern scriptproto_t MODULE_PHYSICS_PROTO;
/** Physics() constructor always throws; not directly instantiable. */
/** Physics() constructor - always throws; not directly instantiable. */
moduleBaseFunction(modulePhysicsCtor);
/** @return Entity ID that owns this physics component. */
@@ -51,7 +51,7 @@ moduleBaseFunction(modulePhysicsSetGravityScale);
moduleBaseFunction(modulePhysicsGetOnGround);
/**
* applyImpulse(impulse) applies an instantaneous force to the body.
* applyImpulse(impulse) - applies an instantaneous force to the body.
* @param args[0] Vec3 impulse vector.
*/
moduleBaseFunction(modulePhysicsApplyImpulse);
@@ -14,7 +14,7 @@
extern scriptproto_t MODULE_TRIGGER_PROTO;
/** Trigger() constructor always throws; not directly instantiable. */
/** Trigger() constructor - always throws; not directly instantiable. */
moduleBaseFunction(moduleTriggerCtor);
/** @return Entity ID that owns this trigger component. */
@@ -36,14 +36,14 @@ moduleBaseFunction(moduleTriggerGetMax);
moduleBaseFunction(moduleTriggerSetMax);
/**
* setBounds(min, max) sets both AABB corners at once.
* setBounds(min, max) - sets both AABB corners at once.
* @param args[0] Vec3 minimum corner.
* @param args[1] Vec3 maximum corner.
*/
moduleBaseFunction(moduleTriggerSetBounds);
/**
* contains(point) tests whether a world-space point is inside the AABB.
* contains(point) - tests whether a world-space point is inside the AABB.
* @param args[0] Vec3 point.
* @return true if the point is inside the trigger volume.
*/
@@ -18,7 +18,7 @@ typedef struct {
componentid_t componentId;
} jscomponent_t;
/** Component() constructor always throws; not directly instantiable. */
/** Component() constructor - always throws; not directly instantiable. */
moduleBaseFunction(moduleComponentCtor);
/** @return The entity ID that owns this component. */
+4 -4
View File
@@ -19,11 +19,11 @@ typedef struct {
entityid_t id;
} jsentity_t;
/** Entity() constructor always throws; use Entity.create() instead. */
/** Entity() constructor - always throws; use Entity.create() instead. */
moduleBaseFunction(moduleEntityCtor);
/**
* Entity.create() allocates a new entity slot and returns an
* Entity.create() - allocates a new entity slot and returns an
* Entity JS object.
* @return Entity JS object.
* @throws If no entity slots are available.
@@ -31,13 +31,13 @@ moduleBaseFunction(moduleEntityCtor);
moduleBaseFunction(moduleEntityCreate);
/**
* Entity.dispose(entity) disposes an entity and all its components.
* Entity.dispose(entity) - disposes an entity and all its components.
* @param args[0] Entity JS object.
*/
moduleBaseFunction(moduleEntityDisposeEntity);
/**
* entity.add(type) adds a component of the given type to this entity.
* entity.add(type) - adds a component of the given type to this entity.
* @param args[0] Component type constant (e.g. COMPONENT_TYPE_POSITION).
* @return Typed component JS object (Position, Camera, etc.).
* @throws If the type is invalid or no component slots are available.
+5 -5
View File
@@ -28,7 +28,7 @@ typedef struct {
} jsevent_t;
/**
* GC free callback unsubscribes all on() slots and releases JS function
* GC free callback - unsubscribes all on() slots and releases JS function
* refs when the Event object is garbage collected.
*
* @param ptr Native jsevent_t pointer.
@@ -37,19 +37,19 @@ typedef struct {
void moduleEventFree(void *ptr, jerry_object_native_info_t *info);
/**
* on(fn) subscribes fn to the event. Returns this for chaining.
* on(fn) - subscribes fn to the event. Returns this for chaining.
* @param args[0] Function to call when the event fires.
*/
moduleBaseFunction(moduleEventOn);
/**
* off(fn) removes a previously subscribed fn. Returns this for chaining.
* off(fn) - removes a previously subscribed fn. Returns this for chaining.
* @param args[0] The same function reference passed to on().
*/
moduleBaseFunction(moduleEventOff);
/**
* wait() returns a Promise that resolves the next time the event fires.
* wait() - returns a Promise that resolves the next time the event fires.
*/
moduleBaseFunction(moduleEventWait);
@@ -65,7 +65,7 @@ jerry_value_t moduleEventCreate(event_t *event);
* Returns the Event object pinned at pinKey on the parent JS object,
* creating and pinning a new one on first access.
*
* @param callInfo The call info this_value is the parent object.
* @param callInfo The call info - this_value is the parent object.
* @param event The C event_t to wrap. Must outlive the parent object.
* @param pinKey Property name used to cache the Event on the parent.
* @return A JS Event value (caller must free).
+7 -7
View File
@@ -30,44 +30,44 @@ extern scriptproto_t MODULE_INPUT_PROTO;
} while(0)
/**
* Input.isDown(action) true while the action is held this frame.
* Input.isDown(action) - true while the action is held this frame.
* @param args[0] Input action constant.
*/
moduleBaseFunction(moduleInputIsDown);
/**
* Input.wasDown(action) true if the action was held last frame.
* Input.wasDown(action) - true if the action was held last frame.
* @param args[0] Input action constant.
*/
moduleBaseFunction(moduleInputWasDown);
/**
* Input.pressed(action) true on the first frame the action is held.
* Input.pressed(action) - true on the first frame the action is held.
* @param args[0] Input action constant.
*/
moduleBaseFunction(moduleInputPressed);
/**
* Input.released(action) true on the first frame the action is released.
* Input.released(action) - true on the first frame the action is released.
* @param args[0] Input action constant.
*/
moduleBaseFunction(moduleInputReleased);
/**
* Input.getValue(action) returns the analog value (01) of the action.
* Input.getValue(action) - returns the analog value (0-1) of the action.
* @param args[0] Input action constant.
*/
moduleBaseFunction(moduleInputGetValue);
/**
* Input.axis(negative, positive) returns a signed axis value in [-1, 1].
* Input.axis(negative, positive) - returns a signed axis value in [-1, 1].
* @param args[0] Negative action constant.
* @param args[1] Positive action constant.
*/
moduleBaseFunction(moduleInputAxis);
/**
* Input.bind(buttonName, action) binds a named button to an action.
* Input.bind(buttonName, action) - binds a named button to an action.
* @param args[0] Button name string.
* @param args[1] Input action constant.
*/
+10 -10
View File
@@ -12,56 +12,56 @@
extern scriptproto_t MODULE_BACKPACK_PROTO;
/**
* Backpack.isFull true when all storage slots are occupied.
* Backpack.isFull - true when all storage slots are occupied.
*/
moduleBaseFunction(moduleBackpackGetIsFull);
/**
* Backpack.getCount(itemId) quantity of itemId (0 if absent).
* Backpack.getCount(itemId) - quantity of itemId (0 if absent).
*
* @param args[0] Item ID constant (ITEM_ID_*).
*/
moduleBaseFunction(moduleBackpackGetCount);
/**
* Backpack.has(itemId) true if itemId is present with quantity > 0.
* Backpack.has(itemId) - true if itemId is present with quantity > 0.
*
* @param args[0] Item ID constant (ITEM_ID_*).
*/
moduleBaseFunction(moduleBackpackHas);
/**
* Backpack.isItemFull(itemId) true if the stack is at max quantity.
* Backpack.isItemFull(itemId) - true if the stack is at max quantity.
*
* @param args[0] Item ID constant (ITEM_ID_*).
*/
moduleBaseFunction(moduleBackpackIsItemFull);
/**
* Backpack.set(itemId, quantity) set quantity; removes when 0.
* Backpack.set(itemId, quantity) - set quantity; removes when 0.
*
* @param args[0] Item ID constant (ITEM_ID_*).
* @param args[1] Quantity 0255.
* @param args[1] Quantity 0-255.
*/
moduleBaseFunction(moduleBackpackSet);
/**
* Backpack.add(itemId, quantity) add quantity units of itemId.
* Backpack.add(itemId, quantity) - add quantity units of itemId.
*
* @param args[0] Item ID constant (ITEM_ID_*).
* @param args[1] Quantity to add (1255).
* @param args[1] Quantity to add (1-255).
*/
moduleBaseFunction(moduleBackpackAdd);
/**
* Backpack.remove(itemId) removes itemId entirely from the backpack.
* Backpack.remove(itemId) - removes itemId entirely from the backpack.
*
* @param args[0] Item ID constant (ITEM_ID_*).
*/
moduleBaseFunction(moduleBackpackRemove);
/**
* Backpack.sort(sortBy[, reverse]) sort the backpack contents.
* Backpack.sort(sortBy[, reverse]) - sort the backpack contents.
*
* @param args[0] Sort type (INVENTORY_SORT_BY_ID or
* INVENTORY_SORT_BY_TYPE).
+2 -2
View File
@@ -29,14 +29,14 @@ extern scriptproto_t MODULE_ITEM_PROTO;
} while(0)
/**
* Item.getName(itemId) returns the item's string name.
* Item.getName(itemId) - returns the item's string name.
*
* @param args[0] Item ID constant (ITEM_ID_*).
*/
moduleBaseFunction(moduleItemGetName);
/**
* Item.getType(itemId) returns the item's type constant.
* Item.getType(itemId) - returns the item's type constant.
*
* @param args[0] Item ID constant (ITEM_ID_*).
*/
+2 -2
View File
@@ -13,7 +13,7 @@
extern scriptproto_t MODULE_LOCALE_PROTO;
/**
* Locale.getText(id[, pluralCount[, arg1, ...]]) returns the
* Locale.getText(id[, pluralCount[, arg1, ...]]) - returns the
* translated string for the given message ID.
*
* @param args[0] Message ID string.
@@ -23,7 +23,7 @@ extern scriptproto_t MODULE_LOCALE_PROTO;
moduleBaseFunction(moduleLocaleGetText);
/**
* Locale.setLocale(name) switches the active locale by name.
* Locale.setLocale(name) - switches the active locale by name.
*
* @param args[0] Locale name string, e.g. "en-US".
*/
@@ -12,7 +12,7 @@
extern scriptproto_t MODULE_OVERWORLD_PROTO;
/**
* Overworld.loadMap(handle) loads the map with the given handle string.
* Overworld.loadMap(handle) - loads the map with the given handle string.
* Disposes any currently loaded map first.
*
* @param args[0] Map handle string (max 31 chars).
@@ -20,14 +20,14 @@ extern scriptproto_t MODULE_OVERWORLD_PROTO;
moduleBaseFunction(moduleOverworldLoadMap);
/**
* Overworld.isLoaded() returns true when a map is currently loaded.
* Overworld.isLoaded() - returns true when a map is currently loaded.
*
* @return boolean
*/
moduleBaseFunction(moduleOverworldIsLoaded);
/**
* Overworld.setPosition(x, y, z) slides the chunk window to the tile
* Overworld.setPosition(x, y, z) - slides the chunk window to the tile
* position (x, y, z).
*
* @param args[0] Tile X (integer).
@@ -37,12 +37,12 @@ moduleBaseFunction(moduleOverworldIsLoaded);
moduleBaseFunction(moduleOverworldSetPosition);
/**
* Overworld.update() advances the map one tick.
* Overworld.update() - advances the map one tick.
*/
moduleBaseFunction(moduleOverworldUpdate);
/**
* Overworld.dispose() unloads the current map.
* Overworld.dispose() - unloads the current map.
*/
moduleBaseFunction(moduleOverworldJsDispose);
@@ -153,7 +153,7 @@ jerry_value_t moduleRequireAsyncFunc(
jerry_value_t promise = jerry_promise();
// Already loaded resolve immediately.
// Already loaded - resolve immediately.
if(entry->state == ASSET_ENTRY_STATE_LOADED) {
jerry_value_t exports = (
jerry_value_is_undefined(entry->data.script.exports) ?
@@ -167,7 +167,7 @@ jerry_value_t moduleRequireAsyncFunc(
return promise;
}
// Already errored reject immediately.
// Already errored - reject immediately.
if(entry->state == ASSET_ENTRY_STATE_ERROR) {
assetUnlockEntry(entry);
jerry_value_t errStr = jerry_string_sz("Module load failed");
+4 -4
View File
@@ -29,28 +29,28 @@ extern scriptproto_t MODULE_SAVE_PROTO;
} while(0)
/**
* Save.exists(slot) true if a save file is present for the slot.
* Save.exists(slot) - true if a save file is present for the slot.
*
* @param args[0] Save slot index (0 to SAVE_FILE_COUNT_MAX - 1).
*/
moduleBaseFunction(moduleSaveExists);
/**
* Save.load(slot) loads the save file for the given slot.
* Save.load(slot) - loads the save file for the given slot.
*
* @param args[0] Save slot index (0 to SAVE_FILE_COUNT_MAX - 1).
*/
moduleBaseFunction(moduleSaveLoad);
/**
* Save.write(slot) writes the save file for the given slot.
* Save.write(slot) - writes the save file for the given slot.
*
* @param args[0] Save slot index (0 to SAVE_FILE_COUNT_MAX - 1).
*/
moduleBaseFunction(moduleSaveWrite);
/**
* Save.delete(slot) deletes the save file for the given slot.
* Save.delete(slot) - deletes the save file for the given slot.
*
* @param args[0] Save slot index (0 to SAVE_FILE_COUNT_MAX - 1).
*/
+3 -3
View File
@@ -29,17 +29,17 @@ extern scriptproto_t MODULE_STORY_PROTO;
} while(0)
/**
* Story.get(flagId) returns the current uint8 value of a story flag.
* Story.get(flagId) - returns the current uint8 value of a story flag.
*
* @param args[0] Story flag constant (STORY_FLAG_*).
*/
moduleBaseFunction(moduleStoryGet);
/**
* Story.set(flagId, value) sets a story flag to a uint8 value.
* Story.set(flagId, value) - sets a story flag to a uint8 value.
*
* @param args[0] Story flag constant (STORY_FLAG_*).
* @param args[1] Value 0255.
* @param args[1] Value 0-255.
*/
moduleBaseFunction(moduleStorySet);
+5 -5
View File
@@ -12,29 +12,29 @@
extern scriptproto_t MODULE_TEXTBOX_PROTO;
/**
* UITextbox.setText(text) sets the textbox content and rebuilds layout.
* UITextbox.setText(text) - sets the textbox content and rebuilds layout.
*
* @param args[0] Null-terminated text string.
*/
moduleBaseFunction(moduleTextboxSetText);
/**
* UITextbox.nextPage() advances to the next page; no-op on last page.
* UITextbox.nextPage() - advances to the next page; no-op on last page.
*/
moduleBaseFunction(moduleTextboxNextPage);
/**
* UITextbox.update() advances the typewriter scroll by one tick.
* UITextbox.update() - advances the typewriter scroll by one tick.
*/
moduleBaseFunction(moduleTextboxUpdate);
/**
* UITextbox.draw() draws the frame and visible text for this frame.
* UITextbox.draw() - draws the frame and visible text for this frame.
*/
moduleBaseFunction(moduleTextboxDraw);
/**
* UITextbox.setAdvanceAction(action) sets the input action that
* UITextbox.setAdvanceAction(action) - sets the input action that
* advances the textbox when held.
*
* @param args[0] Input action constant (INPUT_ACTION_*).
+1 -1
View File
@@ -51,7 +51,7 @@ errorret_t assetInitDolphinDVD(void) {
while(pos < rootSize) {
u8 recLen = dir[pos];
if(recLen == 0) {
// Sector padding skip to the start of the next sector.
// Sector padding - skip to the start of the next sector.
pos = (
pos + (ASSET_DOLPHIN_DVD_SECTOR_SIZE - 1u)
) & ~(ASSET_DOLPHIN_DVD_SECTOR_SIZE - 1u);
+2 -2
View File
@@ -114,12 +114,12 @@ void logError(const char_t *message, ...) {
va_end(copy);
va_end(args);
// PAD_Init is idempotent safe even if inputInit already called it,
// PAD_Init is idempotent - safe even if inputInit already called it,
// and handles the case where the error occurred before inputInit ran.
PAD_Init();
while(SYS_MainLoop()) {
PAD_ScanPads();
// START button matches the RAGEQUIT bind allows exit on GC controller
// START button matches the RAGEQUIT bind - allows exit on GC controller
// when there is no Wiimote HOME button available.
if(PAD_ButtonsDown(0) & PAD_BUTTON_START) break;
VIDEO_WaitVSync();