lundi, avril 11, 2011

RES_BGTILE_SUB

Peut mieux faire. Une soirée de débugging et une heure de chipotage par essai/erreur pour parvenir à avoir la LimbsTable sur la gauche de l'image qui fonctionne correctement, il n'y a pas vraiment de quoi être fier. D'autant qu'il ne s'agissait pas cette fois-ci de coder un nouveau widget mais bien de réutiliser quelque-chose qui avait déjà été développé pour le LevelEditor!

Not really proud of how my SpriteTable widgets completely lack ease-of-use. It took me one evening debugging and one extra hour of trial/error coding to figure out how I should instanciate the "limbs table" for the animation editor. And that's not even some new widget: merely an attempt to reuse something that was built for the Level Editor a few years ago. And the resulting initialisation code is ridiculously complex:

La difficulté d'obtenir une petite partie des tiles pour un usage dédié est anormale. Voyez plutôt:

SpriteSheet limbsheet(BG_GFX_SUB + 0x4000 +
Engine::allocate(Engine::RES_BGTILE_SUB,2*16)*32,
BG_PALETTE_SUB,0x8000/64);

Alors qu'on aurait voulu pouvoir s'en sortir en écrivant limbsheet(Engine::RES_BGTILE_SUB,32). Et celà sans prendre en compte le besoin de reprogrammer le mode vidéo de l'écran "sub" (par défaut régler pour faire des zooms comme dans le SpriteEditor) et le "calque" sur lequel seront dessinés les différents membres (par défaut affichant des caractères ASCII en 16 couleurs).

Et il est temps que ça bouge, histoire que je puisse donner vies aux "petites marionnettes numériques" imaginées par mon frère pour divertir les loulous.

edit: okay. That seems to work, now. At least, I've got limbs displayed on the left and the according spritepage shown on the right when one limb is clicked. Ready to start working on the "Frame Editor" widget. But the code is still ugly.

edit++: it looks like making it "easier to use" will be required to turn the RightTable into a TileTable as well ... and that might be required to be able to display sprites on the FrameEditor.

Aucun commentaire: