Référence complète des commandes (instructions)
Source : Wiki officiel – Autodocs
Ce document couvre l’intégralité des commandes, codeblocks internes, constantes et variables internes du moteur Scorpion Engine. Toutes les commandes sont configurées via les menus déroulants de l’éditeur — aucune syntaxe à mémoriser.
Table des matières
- Commandes – Actor
- Commandes – Audio
- Commandes – Base
- Commandes – Conditional
- Commandes – Controls
- Commandes – Data
- Commandes – Dialogue
- Commandes – Display
- Commandes – Level
- Commandes – Maths
- Commandes – Palette
- Déclarations – Variables & Constantes
- Codeblocks internes
- Constantes internes
- Variables internes
1. Commandes – Actor
Commandes agissant sur l’acteur courant. Les mêmes commandes sont disponibles avec les préfixes Actor, Projectile, Player et New.
| Commande | Description |
|---|---|
| Animation | Déclencher une animation sur l’entité |
| Camera Follow | Forcer la caméra à suivre cet acteur spécifique |
| Child Spawn | Spawner un enfant de cet acteur (pour spawner un nouvel acteur indépendant, utiliser la catégorie Level) |
| Direction | Définir la direction de regard ou de mouvement de cette entité |
| Freeze | Géler ou dégéler l’acteur — empêche mouvement, collision et animations |
| Look At Point | Regarder vers un point spécifique du niveau |
| Melee | Déclencher manuellement une boîte d’attaque melee |
| Origin | Modifier la position relative de l’entité (liée au parent) |
| Position | Modifier la position de l’entité |
| Push | Pousser cette entité d’un certain montant sur un nombre de frames |
| Render Clearing | Activer ou désactiver le clearing du rendu d’un acteur |
| Render Mode | Définir le mode de rendu de cette entité |
| Schedule Event | Déclencher un codeblock sur cette entité après un nombre de frames |
| Separate | Si en chevauchement, séparer d’un autre acteur pour qu’ils ne se superposent plus |
| Set as NEW | Désigner cet acteur, ou le parent de l’acteur, comme NEW |
| Set as Player | Changer PLAYER pour pointer vers celui qui possède un contrôleur spécifique |
| Set Controller | Surcharger le contrôleur joystick de l’acteur |
| Shoot | Tirer un acteur |
| Spawn Actor | Raccourci vers Level → Spawn Actor |
| Speed | Définir la vitesse exacte de cette entité |
| Type | Modifier le type de l’entité |
| Yield | Exécuter le code suivant après un nombre de frames |
| Z Order | Modifier la position Z de rendu de l’acteur |
2. Commandes – Audio
Commandes agissant sur le son et la musique.
| Commande | Description |
|---|---|
| Auto Fade Music | Définir si la musique fonde avec l’écran |
| Music Pause | Mettre la lecture musicale en pause |
| Music Position | Définir la position de pattern d’une chanson |
| Music Resume | Reprendre la musique là où elle s’est arrêtée |
| Music Volume | Définir le volume de la musique (0–256) |
| Music | Charger et jouer une chanson |
| Play CD Music | Lire ou stopper la musique CD (ou ADPCM-B sur Neo Geo) |
| Set Music Channels | Réserver des canaux spécifiquement pour la musique |
| Sound Volume | Définir le volume des effets sonores (0–256) |
| Sound | Déclencher un effet sonore |
3. Commandes – Base
Commandes pour les opérations basiques et générales.
| Commande | Description |
|---|---|
| Advanced | Fonctions internes du moteur. À utiliser uniquement si vous savez ce que vous faites ! |
| Comment | Aucune action — utilisé uniquement pour commenter les codeblocks |
| Execute | Exécuter une commande AmigaDOS (utiliser avec précaution) |
| Gosub | Aller à un autre codeblock ou label, retourner ici quand Return est appelé |
| Goto | Aller à un autre codeblock ou label |
| Inline | Insérer un codeblock entier à cette ligne (plus rapide que Gosub, pas de Return) |
| Label | Définir un point à l’intérieur d’un codeblock pour les commandes Goto ou Gosub |
| Pop from stack | Dépiler une valeur dans une variable (AVANCÉ) |
| Push to stack | Empiler une valeur (AVANCÉ) |
| Quit | Quitter vers AmigaDOS ou Workbench (valeur autre que 0 = afficher code d’erreur) |
| Return | Retourner au jeu (ou au dernier Gosub) |
| Roll Dice | Générer un nombre aléatoire en simulant un jet de dé |
| Schedule Event | Déclencher un codeblock sur ce niveau après un nombre de frames |
| Set Variable | Modifier la valeur d’une variable |
| Wait | Geler le jeu pendant un nombre de frames |
| Yield On Level | Continuer ce codeblock après un nombre de frames, via le OnTimer du niveau |
Différence Gosub / Inline / Goto
- Gosub : appel avec retour — exécute l’autre codeblock, puis revient à la ligne suivante. Légèrement plus lent (utilise la pile).
- Inline : copie-colle le contenu du codeblock cible directement ici, sans appel de pile. Plus rapide, mais alourdit la taille du codeblock compilé.
- Goto : saut inconditionnel sans retour.
- Yield : pause non-bloquante — le jeu continue de tourner, le code reprend N frames plus tard.
- Wait : pause bloquante — le jeu est gelé pendant N frames. Utile pour les cut-scenes ou intros.
4. Commandes – Conditional
Commandes pour les conditions et boucles.
| Commande | Description |
|---|---|
| Condition | Instruction IF standard |
| Else If | Instruction IF qui ne s’exécute que si l’IF précédent était faux |
| Else | Si l’instruction IF précédente était fausse, exécuter ceci |
| End Condition | Fermer le dernier bloc conditionnel ouvert |
| For Each Actor | Exécuter un codeblock sur chaque acteur d’un type (ou tous les acteurs) |
| For | Boucle avec variable de compteur |
| While | Boucle tant que la condition IF est vraie |
Conseil de performance : utilisez Else If plutôt qu’une série de If indépendants. Dès qu’une branche Else If est vraie, les suivantes sont ignorées.
5. Commandes – Controls
Commandes agissant sur les contrôleurs.
| Commande | Description |
|---|---|
| Attack/Move Controls | Modifier le bouton d’attaque/déplacement et ses paramètres de comportement |
| Boost Acceleration | Booster l’accélération d’un acteur contrôlé |
| Boost | Booster la vitesse maximale d’un acteur contrôlé |
| Control Mode | Modifier le nombre et le type de contrôleurs actifs |
| Jump Controls | Modifier le bouton de saut et ses paramètres de comportement |
6. Commandes – Data
Commandes agissant sur les données (chargement et sauvegarde).
| Commande | Description |
|---|---|
| Data Load | Charger des variables depuis le disque. Vérifier la variable Success pour le résultat. |
| Data Save | Sauvegarder des variables sur le disque. Vérifier la variable Success pour le résultat. |
| String Clear | Effacer une chaîne de caractères entière |
| String Replace | Remplacer une chaîne entière par une autre |
| String Set Character | Modifier un caractère d’une chaîne à un index donné (code ASCII) |
7. Commandes – Dialogue
Commandes pour l’affichage de texte.
| Commande | Description |
|---|---|
| Choice | Configurer une option de dialogue pour le joueur |
| Imprimer du texte dans un panel | |
| Speak Delay | Définir le délai avant que chaque caractère soit affiché |
| Speak | Afficher une ligne de dialogue dans le talkpad |
8. Commandes – Display
Commandes agissant sur la résolution, l’écran et les panels.
| Commande | Description |
|---|---|
| Blink Time | Définir le Blinking Time pour les modes RenderMode_Blink etc. |
| Camera Bounds | Modifier les limites Gauche / Droite / Haut / Bas de la caméra |
| Camera Box | Modifier la distance du joueur par rapport au centre de caméra |
| Camera Follow | Modifier comment la caméra suit le joueur |
| Camera Position | Modifier la position de la caméra |
| Camera Scroll | Définir la vitesse d’auto-scroll de la caméra en X et Y |
| Column Scroll | AVANCÉ — Mega Drive uniquement. Nécessite la commande Set Screen. |
| Configure Screen | Définir la résolution Y, la fréquence, le mode de wrap d’écran, etc. |
| Panel Bottom | Modifier le panel du bas |
| Panel Special | Modifier le panel 32X ou le Sprite Panel Amiga |
| Panel Top | Modifier le panel du haut |
| Panel | Modifier le panel sur l’affichage principal |
| Parallax Pointer | Définir la variable qui contrôle le parallaxe (défaut : Camera_X) |
| Parallax Scroll | Définir manuellement le décalage d’une tranche du parallaxe |
| Talkpad | Définir le talkpad (nécessaire pour la commande Say) |
9. Commandes – Level
Commandes pour charger ou modifier le niveau courant.
| Commande | Description |
|---|---|
| Asset Bundle | Charger ou décharger un bundle d’assets (AVANCÉ) |
| Background | Remplacer le fond courant par un autre |
| Block Count | Compter le nombre de blocks d’un type dans le niveau |
| Block Find | Trouver le prochain block d’un type, met à jour block_x / block_y si trouvé |
| Block Get by Pixel | Obtenir le block aux coordonnées pixel |
| Block Get | Obtenir le block aux coordonnées tuiles |
| Block Set | Modifier le block à une position spécifique |
| Block Spawn | Spawner un acteur sur un block |
| Level | Charger et lancer un nouveau niveau |
| Spawn Actor | Spawner un acteur dans le niveau |
| Teleport to | Téléporter vers un téléporteur configuré dans n’importe quelle map |
| Tile Properties Get | Obtenir les propriétés de tuile aux coordonnées tuiles |
| Tile Properties Set | Définir les propriétés d’une tuile |
10. Commandes – Maths
Commandes pour les calculs mathématiques.
| Commande | Description |
|---|---|
| Absolute | Convertir une expression, si négative, en positive (valeur absolue) |
| Angle | Faire pivoter une valeur selon une direction, et placer le résultat dans deux expressions |
| ATan2 | Obtenir une direction 0–359° depuis X et Y |
| Distance (Exact – Slow) | Calculer la distance directe entre deux points (précis, lent) |
| Distance (Manhattan – Fast) | Calculer la distance Manhattan entre deux points (rapide, moins précis) |
| Square Root | Calculer la racine carrée d’une expression |
11. Commandes – Palette
Commandes pour les fades et la manipulation de palette.
| Commande | Description |
|---|---|
| Color Read | Charger la couleur originale d’un index de palette dans RED, GREEN, BLUE |
| Color Reset | Réinitialiser la couleur d’un index de palette à sa valeur d’origine |
| Color Set | Modifier la couleur d’un index de palette |
| Color Write | Sauvegarder une nouvelle couleur depuis RED, GREEN, BLUE dans la palette |
| Fade In | Faire apparaître l’écran depuis le noir |
| Fade Out | Faire disparaître l’écran vers le noir |
| Fade Time | Définir le nombre de frames pour un fondu complet |
| Palette Read | Lire une seule couleur depuis un PNG dans RED, GREEN et BLUE |
| Palette Set | Définir une plage de couleurs depuis un PNG |
| Palette Swap | Modifier l’index d’une couleur sur toutes les frames d’une animation |
12. Déclarations – Variables & Constantes
Déclarations de valeurs variables et constantes dans les codeblocks.
| Type | Description |
|---|---|
| Alias | Ajouter un nom alternatif pour une autre variable (ex. : actor_health = actor_var1) |
| Array | Réserver de la mémoire vide. Le champ Valeur contient la longueur. |
| Constant | Nombre non modifiable. Le champ Valeur contient le nombre hard-codé. |
| Hardware Register | AVANCÉ. Lire ou écrire directement le matériel (peek/poke). |
| LookUpTable | Tableau lisant depuis un fichier texte (une constante par ligne). Lecture seule. Ne compte pas dans la mémoire des codeblocks Amiga. |
| String | Ensemble de caractères ASCII. Le champ Valeur contient la valeur initiale (la longueur ne peut pas être modifiée après déclaration). |
| Variable | Nombre modifiable. Le champ Valeur contient la valeur par défaut. |
Types de données disponibles
| Type | Taille | Min | Max | Performance | Usage |
|---|---|---|---|---|---|
| Byte | 1 octet | −128 | 127 | Bon | Données compactes dans les tableaux |
| Word | 2 octets | −32 768 | 32 767 | Bon | Défaut recommandé — plupart des variables |
| Long | 4 octets | −2 147 483 648 | 2 147 483 647 | Moyen | Scores élevés, grandes valeurs |
| Fraction | 4 octets | −32 768.0 | 32 767.0 | Lent | Positions sub-pixel (vitesse < 1 px/frame). Virgule fixe 16:16. |
Note : Byte n’économise pas de mémoire face à Word pour les variables simples (adresses arrondie aux nombres pairs sur 68000). Il est utile uniquement dans les tableaux et LUT pour une allocation contigüe.
Look Up Tables – clés constantes
Les LUT peuvent être indexées par des constantes définies :
// Fichier level_target_scores.txt :
level01 = 100
level02 = 200
level03 = 350
// Dans un codeblock :
if score >= level_target_scores[level]
// Objectif de score atteint pour ce niveau !
end condition
Les LUT fonctionnent aussi avec des tags d’acteurs, d’animations, etc.
13. Codeblocks internes
Codeblocks prédéfinis disponibles dans l’éditeur via Gosub, Goto ou Inline. Utiliser Inline pour les performances optimales.
| Codeblock | Description |
|---|---|
anim_force_left | Forcer l’acteur à jouer le côté gauche de l’animation auto-flip courante |
anim_force_right | Forcer l’acteur à jouer le côté droit de l’animation auto-flip courante |
block_coll_force | Forcer l’acteur à entrer en collision avec un block. Valide uniquement dans les événements de collision block. |
block_coll_passthru | Forcer l’acteur à traverser un block. Valide uniquement dans les événements de collision block. |
block_count | À utiliser avec la commande Level → Block Count |
block_find | À utiliser avec la commande Level → Block Find |
check_talkpad | Vérifie qu’un talkpad valide est chargé avant d’afficher du texte |
debug_breakpoint | Point d’arrêt déclenché manuellement (sans effet hors du mode debug) |
destroy_actor | Détruire l’acteur courant |
destroy_all_actors | Détruire tous les acteurs |
destroy_all_blocks | Détruire tous les blocks |
destroy_block | Détruire le block courant |
destroy_child_actors | Détruire tous les acteurs enfants |
do_teleport | Déclencher un téléport |
fadein | Fondu depuis le noir |
fadeout | Fondu vers le noir |
flipscreen | La caméra se cale instantanément sur l’écran du joueur |
flipscreen_smooth | La caméra scrolle doucement vers l’écran du joueur |
flipxmove | Inverser la direction X de l’acteur |
flipxymove | Inverser les directions X et Y de l’acteur |
flipymove | Inverser la direction Y de l’acteur |
freeze_actor | Géler le mouvement et la logique de l’acteur (le OnTimer reste actif) |
jump_actor | Faire sauter l’acteur |
load_next_level | Charger le niveau suivant (alphabétiquement). Boucle au premier niveau après le dernier. |
pause | Mettre le jeu en pause jusqu’à ce que le joueur le reprenne |
quit | Quitter le jeu sans message d’erreur |
restart_this_level | Redémarrer le niveau courant |
return | Retourner au jeu ou au dernier Gosub |
set_ntsc | Sur certains modèles d’Amiga, forcer le mode NTSC ou non |
snap_to_screen | Forcer l’acteur dans les limites de l’écran |
unfreeze_actor | Dégéler l’acteur courant |
waitforfiredown | Attendre que le joueur maintienne Fire |
waitforfirehit | Attendre que le joueur appuie et relâche Fire |
waitforfireup | Attendre que le joueur relâche Fire |
waitforframes | Attendre un nombre de frames |
wrap_screen_bottom | Faire apparaître l’acteur en haut quand il sort par le bas |
wrap_screen_left | Faire apparaître l’acteur à droite quand il sort par la gauche |
wrap_screen_right | Faire apparaître l’acteur à gauche quand il sort par la droite |
wrap_screen_top | Faire apparaître l’acteur en bas quand il sort par le haut |
14. Constantes internes
14.1 vm constants
| Constante | Description | Valeur |
|---|---|---|
AGARequired | AGA requis pour ce projet ? | false |
Button_Down | Bouton maintenu enfoncé (ex. : if control1_fire = button_down) | −1 |
Button_Hit | Bouton venant d’être pressé (front montant, 1 frame) | 1 |
Button_None | Bouton non pressé | 0 |
Down | Constante caméra bas | 8 |
False | Faux | 0 |
Frame_Adjust | Vitesse de sortie / vitesse logique | 1 |
IsOnPlatform_False | Pas sur de plateforme | 0 |
IsOnPlatform_Flat | Sur une tuile ou block plat | −1 |
IsOnPlatform_PlatformActor | Sur un acteur plateforme | 2 |
IsOnPlatform_Slope | Sur une pente | 1 |
IsTestingLevel | Mode test de niveau en cours ? | 0 |
LastLevel | Constante pour le dernier niveau du jeu | 0 |
Left | Constante caméra gauche | 1 |
Logic_Speed | La vitesse logique du projet | 0 |
None | Aucun. Peut servir à décharger des niveaux, etc. | 0 |
Right | Constante caméra droite | 2 |
Speed_Adjust | Vitesse logique / vitesse de sortie | 1 |
Target_Speed | La fréquence de sortie (framerate) du projet | 0 |
TileMask | Opération AND pour arrondir aux coordonnées tuile (ex. : actor_x & TileMask) | 0xFFF0 |
Trigger_AttackAnimation | Définir actor_animation sur cette valeur pour déclencher l’anim d’attaque | −1 |
Trigger_AttackSound | Définir actor_sound sur cette valeur pour déclencher le son d’attaque | −10 |
Trigger_CancelAnimation | Annuler l’animation courante | −2 |
Trigger_CancelSound0 | Annuler l’effet sonore priorité 0 (Mega Drive uniquement) | 0 |
Trigger_CancelSound1 | Annuler l’effet sonore priorité 1 (Mega Drive uniquement) | −1 |
Trigger_CancelSound2 | Annuler l’effet sonore priorité 2 (Mega Drive uniquement) | −2 |
Trigger_JumpSound | Déclencher le son de saut de l’acteur | −20 |
True | Vrai | −1 |
Up | Constante caméra haut | 4 |
XRes | Largeur d’écran (fixée à la compilation) | 256 |
YResMax | Résolution Y maximale de la zone de jeu | 256 |
14.2 vm constants animationflags
Bits de la variable actor_animationflags. Tester avec BITTST.
| Constante | Description | Bit |
|---|---|---|
AnimFlag_PreventMovement | L’acteur ne peut pas se déplacer pendant cette animation | 0 |
AnimFlag_PreventCollision | Pas de collision pendant cette animation | 1 |
AnimFlag_HideChildren | Cacher les acteurs enfants | 2 |
AnimFlag_PreventAttack | L’acteur ne peut pas attaquer | 3 |
AnimFlag_AutoFlipLeft | Auto-flip vers la gauche | 4 |
AnimFlag_AutoFlipRight | Auto-flip vers la droite | 5 |
14.3 vm constants audiodriver
| Constante | Description | Valeur |
|---|---|---|
audiodriver | Driver audio de ce build | 0 |
audiodriver_mdsdrv | Driver audio Mega Drive MDSDRV | 2 |
audiodriver_na | Pas de driver audio | 0 |
audiodriver_ptplayer | Driver audio Amiga PTPlayer (modules ProTracker) | 1 |
audiodriver_xgm | Driver audio Mega Drive XGM | 3 |
14.4 vm constants controlbits
Bits utilisés avec BITTST sur les variables Control0_Buttons / Control0_HitButtons (et idem pour Control1, 2, 3, 4, ainsi que actor_controlbuttons / actor_controlhitbuttons).
| Constante | Description | Bit |
|---|---|---|
Joy_Up | Joystick Haut (toutes plateformes) | 0 |
Joy_Down | Joystick Bas (toutes plateformes) | 1 |
Joy_Left | Joystick Gauche (toutes plateformes) | 2 |
Joy_Right | Joystick Droite (toutes plateformes) | 3 |
Amiga_Fire1 = CD32_Red | Fire 1 / CD32 Rouge | 4 |
Amiga_Fire2 = CD32_Blue | Fire 2 / CD32 Bleu | 5 |
Amiga_Fire3 = CD32_Play | Fire 3 / CD32 Play (bouton du milieu) | 7 |
CD32_Reverse | CD32 Épaule gauche (L) | 8 |
CD32_Forward | CD32 Épaule droite (R) | 9 |
CD32_Green | CD32 Vert | 10 |
CD32_Yellow | CD32 Jaune | 11 |
MegaDrive_B | Mega Drive Bouton B | 4 |
MegaDrive_C | Mega Drive Bouton C | 5 |
MegaDrive_A | Mega Drive Bouton A | 6 |
MegaDrive_Start | Mega Drive Start | 7 |
MegaDrive_Z | Mega Drive Bouton Z | 8 |
MegaDrive_Y | Mega Drive Bouton Y | 9 |
MegaDrive_X | Mega Drive Bouton X | 10 |
MegaDrive_Mode | Mega Drive Mode | 11 |
NeoGeo_A | Neo Geo Bouton A | 4 |
NeoGeo_B | Neo Geo Bouton B | 5 |
NeoGeo_C | Neo Geo Bouton C | 6 |
NeoGeo_D | Neo Geo Bouton D | 7 |
NeoGeo_Start | Neo Geo Start | 8 |
NeoGeo_Select | Neo Geo Select | 9 |
Pico_Red | Sega Pico Rouge | 4 |
Pico_Pen | Sega Pico Stylet | 7 |
Flag_LockMovement | Bit de verrouillage du mouvement activé | 14 |
Flag_AutoFire | Bit d’autofire activé | 15 |
Mask_TrueButtons | Masque bit pour les vrais boutons (sans les directions) | 0x0ff0 |
14.5 vm constants hardware
Valeurs retournées par la variable Processor et ROM.
| Constante | Description | Valeur |
|---|---|---|
M68000 | Processeur 68000 de base | 0 |
M68010 | Processeur 68010 (Amiga uniquement) | 1 |
M68020 | Processeur 68020 (Amiga uniquement) | 2 |
M68030 | Processeur 68030 (Amiga uniquement) | 3 |
M68040 | Processeur 68040 (Amiga uniquement) | 4 |
M68060 | Processeur 68060 (Amiga uniquement) | 5 |
M68080 | Processeur 68080 Vampire (Amiga uniquement) | 6 |
KS_1_2 | ROM Amiga Kickstart 1.2 | 33 |
KS_1_3 | ROM Amiga Kickstart 1.3 | 34 |
KS_2_0 | ROM Amiga Kickstart 2.0 | 36 |
KS_3_0 | ROM Amiga Kickstart 3.0 | 39 |
14.6 vm constants look directions
Constantes pour la commande Direction et la variable actor_lookdir. Les préfixes désignent trois modes distincts :
- Look_* : Orientation visuelle uniquement (le sprite regarde dans cette direction, sans bouger)
- Move_* : Mouvement dans cette direction (et orientation visuelle alignée)
- Strafe_* : Déplacement dans cette direction sans changer l’orientation visuelle
| Constante | Valeur | Constante | Valeur |
|---|---|---|---|
Look_UpLeft | 0 | Move_UpLeft | 16 |
Look_Up | 1 | Move_Up | 17 |
Look_UpRight | 2 | Move_UpRight | 18 |
Look_Left | 3 | Move_Left | 19 |
Look_Center | 4 (ne pas utiliser) | Move_Center | 20 (ne pas utiliser) |
Look_Right | 5 | Move_Right | 21 |
Look_DownLeft | 6 | Move_DownLeft | 22 |
Look_Down | 7 | Move_Down | 23 |
Look_DownRight | 8 | Move_DownRight | 24 |
| Constante Strafe | Val. | Constante Strafe | Val. |
|---|---|---|---|
Strafe_UpLeft | 80 | Strafe_UpRight | 82 |
Strafe_Up | 81 | Strafe_Left | 83 |
Strafe_Center | 84 (ne pas utiliser) | Strafe_Right | 85 |
Strafe_DownLeft | 86 | Strafe_Down | 87 |
Strafe_DownRight | 88 |
Constantes spéciales de direction
| Constante | Valeur | Description |
|---|---|---|
look_atplayer | 32 | Orienter le sprite vers le joueur |
move_atplayer | 48 | Se déplacer directement vers le joueur |
resume_moving | 31 | Reprendre le mouvement (si arrêté) |
stop_moving | −3 | Arrêter tout mouvement |
reset_movement | −1 | Réinitialiser le mouvement (comme au spawn) |
jump_movement | −2 | Sauter directement vers le haut |
Masques de direction (pour tests bitwise)
| Constante | Valeur | Description |
|---|---|---|
LookMask_Up | 7 | L’acteur regarde dans n’importe quelle direction vers le haut |
LookMask_Down | 448 | L’acteur regarde dans n’importe quelle direction vers le bas |
LookMask_Left | 73 | L’acteur regarde dans n’importe quelle direction vers la gauche |
LookMask_Right | 292 | L’acteur regarde dans n’importe quelle direction vers la droite |
14.7 vm constants notes (périodes musicales)
Périodes ProTracker pour les notes musicales. Utilisées dans les effets sonores programmatiques. La période est la valeur matérielle Amiga (plus la valeur est basse, plus la note est haute).
| Constante | Période | Constante | Période | Constante | Période |
|---|---|---|---|---|---|
Note_C1 | 856 | Note_C2 | 428 | Note_C3 | 214 |
Note_C#1 | 808 | Note_C#2 | 404 | Note_C#3 | 202 |
Note_D1 | 762 | Note_D2 | 381 | Note_D3 | 190 |
Note_D#1 | 720 | Note_D#2 | 360 | Note_D#3 | 180 |
Note_E1 | 678 | Note_E2 | 339 | Note_E3 | 170 |
Note_F1 | 640 | Note_F2 | 320 | Note_F3 | 160 |
Note_F#1 | 604 | Note_F#2 | 302 | Note_F#3 | 151 |
Note_G1 | 570 | Note_G2 | 285 | Note_G3 | 143 |
Note_G#1 | 538 | Note_G#2 | 269 | Note_G#3 | 135 |
Note_A1 | 508 | Note_A2 | 254 | Note_A3 | 127 |
Note_A#1 | 480 | Note_A#2 | 240 | Note_A#3 | 120 |
Note_B1 | 453 | Note_B2 | 226 | Note_B3 | 113 |
14.8 vm constants rendermodes
Valeurs pour la variable actor_rendermode et la commande Render Mode.
| Constante | Description | Valeur |
|---|---|---|
RenderMode_Default | Rendu normal | 0 |
RenderMode_Off | Rendu désactivé (invisible mais logique active) | 1 |
RenderMode_Blink | Clignotant | 2 |
RenderMode_Highlight | Surbrillance (Amiga) / Palette +1 (Mega Drive) | 3 |
RenderMode_Flash | Flash continu | 4 |
RenderMode_Shadow | Affiché avec ombre | 5 |
RenderMode_ShadowFlash | Ombre avec flash | 6 |
RenderMode_Invert | Couleurs inversées | 7 |
RenderMode_InvertFlash | Inversé avec flash | 8 |
RenderMode_BlinkAlternative | Clignotement alternatif | 10 |
RenderMode_Parent | Utiliser le mode de rendu du parent | 11 |
RenderMode_PaletteLine1 | Palette + 1 ligne | 3 |
RenderMode_PaletteLine1Flash | Palette + 1 ligne + flash | 4 |
RenderMode_PaletteLine2 | Palette + 2 lignes | 5 |
RenderMode_PaletteLine2Flash | Palette + 2 lignes + flash | 6 |
RenderMode_PaletteLine3 | Palette + 3 lignes | 7 |
RenderMode_PaletteLine3Flash | Palette + 3 lignes + flash | 8 |
14.9 vm constants tile properties
Bits utilisés avec BITTST sur la variable Tile_Properties et les résultats de Tile Properties Get.
| Constante | Description | Bit / Valeur |
|---|---|---|
TileBit_Solid | Cette tuile est-elle solide ? | 0 |
TileBit_Platform | Cette tuile est-elle une plateforme ? | 1 |
TileBit_AIBlock | Cette tuile possède-t-elle le flag “AI Block” ? | 2 |
TileBit_Spare | Cette tuile possède-t-elle le bit spare ? | 3 |
TileBit_HasAnimation | Cette tuile possède-t-elle une animation ? | 4 |
TileBit_HasForeground | Cette tuile possède-t-elle un foreground ? | 5 |
TileBit_Spare2 | Cette tuile possède-t-elle un block avec une pente ? | 6 |
TileBit_HasBlock | Cette tuile possède-t-elle un block ? | 7 |
TileMask_Occupied | Masque : tuile possède un block, est solide ou est une plateforme | 0x83 |
15. Variables internes
15.1 Variables d’acteur
Valides pour les préfixes actor_, player_, projectile_ et new_. Par exemple, actor_x, player_x, new_x désignent la même variable selon le contexte d’exécution.
| Variable | Description |
|---|---|
actor_animation | Animation courante |
actor_animationflags | Flags de l’animation courante |
actor_animationtag | Tag de l’animation courante |
actor_attackdelay | Délai en frames avant de pouvoir attaquer à nouveau |
actor_controlattackcontrols | Configuration du bouton d’attaque |
actor_controlboostdown | Boost de contrôle vers le bas |
actor_controlboostdownaccel | Accélération du boost vers le bas |
actor_controlboostleft | Boost de contrôle vers la gauche |
actor_controlboostleftaccel | Accélération du boost vers la gauche |
actor_controlboostright | Boost de contrôle vers la droite |
actor_controlboostrightaccel | Accélération du boost vers la droite |
actor_controlboostup | Boost de contrôle vers le haut |
actor_controlboostupaccel | Accélération du boost vers le haut |
actor_controlbuttons | État des boutons — tous y compris étendus (maintenu) |
actor_controlfire | État du bouton Fire |
actor_controlhitbuttons | État des boutons — fronts montants uniquement |
actor_controljump | État du bouton Jump |
actor_controljumpcontrols | Configuration du bouton de saut |
actor_controller | Numéro du contrôleur assigné |
actor_controlmousex | Position X de la souris (écran) |
actor_controlmousey | Position Y de la souris (écran) |
actor_controlx | Direction X du contrôle (−1, 0, 1) |
actor_controly | Direction Y du contrôle |
actor_defaultvar1–actor_defaultvar6 | Valeurs par défaut des variables génériques (configurées dans l’éditeur) |
actor_frame | Frame d’animation courante |
actor_framedelay | Délai avant la prochaine frame d’animation |
actor_ismoving | L’acteur est-il en train de bouger ? |
actor_isonplatform | Type de plateforme sous l’acteur (voir constantes IsOnPlatform_*) |
actor_lookdir | Direction de regard courante |
actor_node | Nœud de chemin courant (ou frame de pattern) |
actor_origin_x | Position X d’origine (relative au parent) |
actor_origin_y | Position Y d’origine (relative au parent) |
actor_rendermode | Mode de rendu courant |
actor_rotation | Rotation de l’acteur (0–359 degrés) |
actor_shrink_x | Réduction de la largeur (X shrink) |
actor_shrink_y | Réduction de la hauteur (Y shrink) |
actor_spawnerid | ID unique du spawner / parent de l’acteur |
actor_tag | Tag de catégorie |
actor_timer | Frames avant expiration du OnTimer ou Yield |
actor_type | Type courant de l’acteur |
actor_uniqueid | ID unique de l’acteur |
actor_var1–actor_var6 | Variables génériques (6 mots libres pour usage du développeur) |
actor_var12f | Variable fraction utilisant var1 + var2 (16:16 virgule fixe) |
actor_var12l | Variable long utilisant var1 + var2 (32 bits) |
actor_var34f | Variable fraction utilisant var3 + var4 |
actor_var34l | Variable long utilisant var3 + var4 |
actor_var56f | Variable fraction utilisant var5 + var6 |
actor_var56l | Variable long utilisant var5 + var6 |
actor_x | Position X en pixels |
actor_xfacing | Orientation X : −1=Gauche, 0=Milieu, 1=Droite |
actor_xspeed | Vitesse en X |
actor_y | Position Y en pixels |
actor_yfacing | Orientation Y : −1=Haut, 0=Milieu, 1=Bas |
actor_yspeed | Vitesse en Y |
actor_z | Ordre Z de rendu |
15.2 Variables générales
| Variable | Description |
|---|---|
Actor_Count | Nombre d’acteurs actifs |
AGAFMode | Fetchmode AGA courant |
AutoFadeMusic | Fading automatique de la musique sur fade in/out |
Autonum | Génère des IDs uniques pour chaque acteur spawné |
Background | Fond de niveau chargé (lecture / écriture) |
BackgroundZ | Tout sprite (non Mega Drive) avec Z inférieur à cette valeur est dessiné avant les tuiles |
BlinkTime | Fréquence de basculement des états blink/flash |
Block_Collision | Forcer (true) ou ignorer (false) une collision de block |
Block_Tag | Tag du block sous Block_X / Block_Y (lecture seule) |
Block_Type | Type du block sous Block_X / Block_Y (lecture / écriture) |
Block_X | Pointeur de block sur la coordonnée tuile X |
Block_Y | Pointeur de block sur la coordonnée tuile Y |
BlockTime | Fréquence de rafraîchissement des blocks animés |
Blue | Valeur bleue de la palette |
Breakpoint | Déclencher un breakpoint si activé (rien en dehors du mode debug) |
Brightness | Utilisé pour les fades |
Camera_BoxDown | Bas de la boîte de caméra (marge avant scroll) |
Camera_BoxLeft | Gauche de la boîte de caméra |
Camera_BoxRight | Droite de la boîte de caméra |
Camera_BoxUp | Haut de la boîte de caméra |
Camera_Follow | État du suivi de caméra (lecture / écriture) |
Camera_X | Position X courante de la caméra |
Camera_XMax | Position X maximum de la caméra |
Camera_XMin | Position X minimum de la caméra |
Camera_Y | Position Y courante de la caméra |
Camera_YMax | Position Y maximum de la caméra |
Camera_YMin | Position Y minimum de la caméra |
CameraTargetX | Décalage X cible de la caméra |
CameraTargetY | Décalage Y cible de la caméra |
CDTracks | Nombre de pistes CD détectées (CDTV / CD32) |
ChipRam | Chip RAM disponible en octets |
Control0_Buttons | Joueur 1 — état de tous les boutons (maintenu) |
Control0_HitButtons | Joueur 1 — fronts montants de tous les boutons |
Control0_MouseX | Joueur 1 — Position X de la souris |
Control0_MouseY | Joueur 1 — Position Y de la souris |
Control0_X | Joueur 1 — Axe X du joystick (port joy) |
Control0_Y | Joueur 1 — Axe Y du joystick |
Control0AttackControls | Joueur 1 — Configuration bouton d’attaque |
Control0BoostDown–Control0BoostUpAccel | Joueur 1 — 8 variables de boost (valeurs directionnelles) |
Control0Fire | Joueur 1 — État du bouton Fire |
Control0Jump | Joueur 1 — État du bouton Jump |
Control0JumpControls | Joueur 1 — Configuration du saut |
| Control1_* à Control4_* | Identique pour les joueurs 2, 3, 4. Note : Control2 = port souris. Control3/4 : saut à 2 boutons non supporté. |
ControlMode | Réglage du mode de contrôle |
Dice | SET = générer un aléatoire 1..N. GET = dernière valeur générée. |
DisplayDirty | Une opération VBlank (flip, DMA…) est en attente |
DrawClipBottom | Augmenter pour simuler un foreground qui coupe le bas du niveau |
EventTag | Tag du dernier événement map déclenché |
FadeTime | Durée du fondu en frames |
FastSloppyCollisions | 0 = précis/lent — 1 = moyen — 2 = rapide/imprécis |
ForceFadeOut | Forcer un fade in ou out |
ForegroundZ | Tout sprite avec Z inférieur à cette valeur est dessiné derrière les foreground tiles |
Frame_CountDown | Décrémenté 50/60 fois par seconde indépendamment du CPU |
Frame_Wait | Nombre de frames à sauter par frame (pour réduire le framerate) |
Green | Valeur verte de la palette |
Handle_Collision | Si une collision tuile est gérée après un événement personnalisé |
HighColor | 24 bits sur AGA Amiga. Highlight/Shadow sur Mega Drive. |
HurtTag | Tag de la dernière hurt box déclenchée |
IsAGA | Vrai si la machine est AGA |
IsFloppy | Compilé pour trackdisk |
IsNTSC | Vrai si la machine est NTSC |
KeyboardRawCode | Raw keycode de la dernière touche pressée (Amiga) |
Level | Niveau actuellement chargé (lecture / écriture) |
Loaded | Si le chargement a réussi |
Lookahead_Down/Left/Right/Up | Vitesse de lookahead de la caméra par direction |
MapHeight | Hauteur du niveau courant en pixels |
MapHeightTiles | Hauteur du niveau courant en tuiles |
MapWidth | Largeur du niveau courant en pixels |
MapWidthTiles | Largeur du niveau courant en tuiles |
Math_X, Math_X2, Math_Y, Math_Y2 | Réservés aux fonctions mathématiques |
MaxCameraFollow | Pixels maximum que la caméra peut parcourir par frame |
MaxSlopeStep | Pixels max qu’un acteur en pente peut descendre sans tomber |
MeleeTag | Tag de l’attaque melee en cours |
Music | Musique actuellement jouée (lecture / écriture) |
MusicChannels | Nombre de canaux réservés pour la musique |
MusicMask | Masque réservé pour la musique |
MusicPos | Sauter à un pattern spécifique |
MusicVol | Volume de la musique courante (0–256) |
NewValue | Registre de données spécial |
Option | Option actuellement sélectionnée dans un panel menu |
OptionMoveCooldown | Frames avant que l’option change si le joystick est maintenu |
OptionsEnabled | Les options sont-elles affichées ? |
OtherRam | Autre RAM disponible en octets (Amiga uniquement) |
Panel | Panel plein écran chargé (lecture / écriture) |
Panel_Bottom | Panel du bas chargé |
Panel_Special | Panel spécial chargé |
Panel_Talkpad | Panel talkpad chargé |
Panel_Top | Panel du haut chargé |
Processor | Processeur détecté (constantes M68000…M68080) |
RecycleDistance | Distance de la caméra à partir de laquelle les acteurs sont recyclés |
Red | Valeur rouge de la palette |
ROM | Version de la ROM (constantes KS_*) |
Saved | Si la sauvegarde a réussi |
ScreenTop | Haut de l’écran de jeu. Augmenter pour réserver de l’espace au-dessus. |
Scroll_Speed_X | Vitesse d’auto-scroll en X |
Scroll_Speed_Y | Vitesse d’auto-scroll en Y |
Seed1–Seed4 | Graines aléatoires (4 variables) |
Shake_Camera_X | Décalage du niveau depuis sa position normale (shake caméra X) |
Shake_Camera_Y | Décalage du niveau (shake caméra Y) |
Shake_Sprite_X | Décalage des sprites (shake sprites X) |
Shake_Sprite_Y | Décalage des sprites (shake sprites Y) |
ShowTalkpad | Afficher ou masquer le talkpad |
SoundVol | Volume des effets sonores (0–256) |
SpawnArea_Height | Bas de la zone de spawn |
SpawnArea_Width | Droite de la zone de spawn |
SpawnArea_X | Gauche de la zone de spawn |
SpawnArea_Y | Haut de la zone de spawn |
StringLength | Réservé pour les chaînes talkpad en mémoire |
Success | Résultat de la dernière opération de sauvegarde/chargement |
Talkpad_TextDelay | Nombre de frames entre chaque caractère affiché |
Teleport | Définir sur un téléporteur nommé pour téléporter (fonctionne entre niveaux) |
Tile_Properties | Propriétés de la tuile sous Block_X / Block_Y (lecture seule) |
Wait | Définir pour mettre Scorpion en pause pendant N frames |
YRes | Résolution Y de la zone de jeu (max 256) |
Document compilé depuis https://github.com/earok/scorpion-editor-demos/wiki/Autodocs. Dernière mise à jour de la source : 1er décembre 2025.