Development news : AAO goes open-source NOW !

Read and comment on the latest community news and site updates.
Règles du forum

Re: Development news : AAO goes open-source NOW ! 

Message par Unas » Sam Mai 30, 2015 10:16 am

Don't go and oversimplify everything xD

getPropertyConverter, just like populateAtRulesConverters and populateFunctionConverters, is here to provide a manual mapping from one standard CSS property to an experimental one.
(And yes, this style_loader is the closest thing in the AAO code to the browser hacks I mentioned in 1., though it almost doesn't rely on any browser-specific trick. It mostly just detects if CSS functionalities are implemented in the current browser as stable feature or an experimental one, and adapts the CSS code appropriately. This is what enables me to write CSS using only the standard syntax, and not experimental ones. But I only use properties which are being added to the standard anyway.)

It just so happens that for properties I haven't found any that needs manual mapping as it always follows the browser-prefix convention, so this one currently only returns false (ie no manual mapping, let the generic conversion function add the prefix).
If such a property suddenly appears, however, I can just add a case to the switch in that function and be done with it.
ImageImageImage
If knowledge can create problems, it is not through ignorance that we can solve them.
Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. ( Isaac Asimov )
Avatar de l’utilisateur
Unas
Admin / Site programmer
 
Message(s) : 8787
Inscription : Mar Juil 10, 2007 4:43 pm
Genre: Masculin
Langues parlées: Français, English, Español

Re: Development news : AAO goes open-source NOW ! 

Message par Enthalpy » Mer Juin 03, 2015 9:52 pm

Ha, no, I'm focused more on understanding the code. Simplifications are a nice side-benefit.

I'm working through the objects module and am a bit confused on objCompare. What is it trying to accomplish? What does it even mean to loop for var keyname in obj, where obj is a function? Some experimenting on my own has show that the loop acts as if the function is empty, but does that generalize?
[D]isordered speech is not so much injury to the lips that give it forth, as to the disproportion and incoherence of things in themselves, so negligently expressed. ~ Ben Jonson

Current AAO Development Priority: Issue #94: Grayscale Mode
Avatar de l’utilisateur
Enthalpy
Community Manager
 
Message(s) : 4380
Inscription : Mer Jan 04, 2012 4:40 am
Genre: Masculin
Langues parlées: English, limited Spanish

Re: Development news : AAO goes open-source NOW ! 

Message par Unas » Jeu Juin 04, 2015 9:31 am

Well, objCompare compares two JS objects, to detemine if they are identical or not using a deep comparison (checking all properties recursively).


As far as functions go, well, functions are Javascript objects like any other : you can assign properties to a function and so on, so "for ... in f" will iterate through all the properties assigned to f.

That being said, this comparison does not make sense for functions to begin with : you can't compare the function body, and two functions can be very different even if they expose the same properties...
It could probably be updated with a "case 'function' : return false" or something, so that functions be assumed different as soon as they failed the "obj1 === obj2" test.
(=== will check if they are actually the same object in memory, which is a safe comparison; if they are not, then no other comparison really makes sense so they should be considered different)

I doesn't matter much though : I use objCompare to compare pieces of object model, so JSON-like objects : no functions in there.
ImageImageImage
If knowledge can create problems, it is not through ignorance that we can solve them.
Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. ( Isaac Asimov )
Avatar de l’utilisateur
Unas
Admin / Site programmer
 
Message(s) : 8787
Inscription : Mar Juil 10, 2007 4:43 pm
Genre: Masculin
Langues parlées: Français, English, Español

Re: Development news : AAO goes open-source NOW ! 

Message par Enthalpy » Ven Juin 12, 2015 9:04 am

Huh... I assumed JavaScript would naturally check for object equality that way, but no, it's memory location-based...

I've been working on module summaries. Right now, I have two complete ones for nodes and events, and a mostly complete one for var_environments. Would anybody be interested in looking over them? I figure they could be useful once we have the forum.

For Unas specifically... What are the objectives for the expression engine rewrite? That module is next on my list to look over, so if it's not too ambitious, I've been playing with the idea of working on that.
[D]isordered speech is not so much injury to the lips that give it forth, as to the disproportion and incoherence of things in themselves, so negligently expressed. ~ Ben Jonson

Current AAO Development Priority: Issue #94: Grayscale Mode
Avatar de l’utilisateur
Enthalpy
Community Manager
 
Message(s) : 4380
Inscription : Mer Jan 04, 2012 4:40 am
Genre: Masculin
Langues parlées: English, limited Spanish

Re: Development news : AAO goes open-source NOW ! 

Message par AceAttorneyMaster111 » Dim Juin 14, 2015 2:33 pm

One question about the code editor: I have seen many pull requests accepted, but none of them are actually in the site. Is this a bug, or has it not been implemented? If the latter, when will it be implemented?

Thank you,
AceAttorneyMaster111
Avatar de l’utilisateur
AceAttorneyMaster111
 
Message(s) : 448
Inscription : Sam Sep 27, 2014 6:46 pm
Localisation : Gun trained on you.
Genre: Masculin
Langues parlées: English, français, un poco de español, וקצת עברית

Re: Development news : AAO goes open-source NOW ! 

Message par Singidava » Dim Juin 14, 2015 4:33 pm

AceAttorneyMaster111 a écrit :One question about the code editor: I have seen many pull requests accepted, but none of them are actually in the site. Is this a bug, or has it not been implemented? If the latter, when will it be implemented?

Thank you,
AceAttorneyMaster111

The changes have been made to the develop branch. I'm assuming AAO runs on the master branch (or a local clone of it) and thus what has been done doesn't actually affect the site yet. Dunno if Unas has any plans for a merge anytime soon though.
Avatar de l’utilisateur
Singidava
 
Message(s) : 1621
Inscription : Ven Juil 23, 2010 6:56 pm
Localisation : Finland
Genre: Féminin
Langues parlées: Suomi, English & 日本語

Re: Development news : AAO goes open-source NOW ! 

Message par Unas » Lun Juin 15, 2015 12:22 am

@AAM111 : What Sing said is mostly correct.
At the moment there are a few changes on master not yet reflected on the site, but it will indeed work this way : develop will be merged to master when I decide it's fit to go to production; I'll then copy the code from the master branch to update the site.

It's not automated because updating the actual site is something I take pretty seriously in terms of security so I'd rather do it by hand, checking it at every step, and not storing my credentials anywhere dangerous. :-)

As for when, well... I planned this week end, but forgot. I guess some time this week.
ImageImageImage
If knowledge can create problems, it is not through ignorance that we can solve them.
Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. ( Isaac Asimov )
Avatar de l’utilisateur
Unas
Admin / Site programmer
 
Message(s) : 8787
Inscription : Mar Juil 10, 2007 4:43 pm
Genre: Masculin
Langues parlées: Français, English, Español

Re: Development news : AAO goes open-source NOW ! 

Message par AceAttorneyMaster111 » Lun Juin 15, 2015 1:24 am

Until there is a subforum, should we post questions in this topic?
If so, then
Spoiler : I have a question :
If I were to edit code about the part of the Editor where you add psyche locks, where would I find that?
Thank you!
Avatar de l’utilisateur
AceAttorneyMaster111
 
Message(s) : 448
Inscription : Sam Sep 27, 2014 6:46 pm
Localisation : Gun trained on you.
Genre: Masculin
Langues parlées: English, français, un poco de español, וקצת עברית

Re: Development news : AAO goes open-source NOW ! 

Message par Singidava » Mar Juin 16, 2015 8:15 pm

AceAttorneyMaster111 a écrit :Until there is a subforum, should we post questions in this topic?
If so, then
Spoiler : I have a question :
If I were to edit code about the part of the Editor where you add psyche locks, where would I find that?
Thank you!

I warmly recommend using word search.

Code : Tout sélectionner
Searching 418 files for "psyche"

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\mocked_install\config.php:
   20           'defaultplaces_subdir' => "defaultplaces/",
   21           'popups_subdir' => "popups/",
   22:          'locks_subdir' => "psycheLocks/",
   23        'music_dir' => "../test_install/resources/music/",
   24        'sounds_dir' => "../test_install/resources/sounds/",

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\player.html:
   51                    <a class="bs-button topleft" id="press" data-locale-content="press"></a>
   52                    <a class="bs-button topmiddle" id="present-center" data-locale-content="present"></a>
   53:                   <a id="locks"><img src="img/magatama.gif" alt="Psyche locks" /></a>
   54                    <a class="bs-button topright"  id="present-topright" data-locale-content="present"></a>
   55                 </div>

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\test_install\config.php:
   20           'defaultplaces_subdir' => "defaultplaces/",
   21           'popups_subdir' => "popups/",
   22:          'locks_subdir' => "psycheLocks/",
   23        'music_dir' => "../test_install/resources/music/",
   24        'sounds_dir' => "../test_install/resources/sounds/",

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\test_static\mock_bridge.js:
   13    "defaultplaces_subdir": "defaultplaces/",
   14    "popups_subdir": "chars/Cour/",
   15:   "locks_subdir": "psycheLocks/",
   16    "music_dir": "test_install/resources/music/",
   17    "sounds_dir": "test_install/resources/sounds/",

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\CSS\player_global.css:
  245  }
  246 
  247: /* Psyche locks button */
  248  #locks
  249  {

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\CSS\player_pwstyle.css:
   86  }
   87 
   88: /* Psyche locks button */
   89  #locks
   90  {

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\includes\action_descriptions.php:
  322        );
  323        
  324:       //Psyche locks actions
  325        $action_parameters['Locks'] = array();
  326        $action_parameters['Locks']['LocksEnd'] = array(
  327:          'context' => array( //Parameters to fill automatically when in psyche locks conversation, hidden from the user.
  328              'out_of_editor' => array(
  329                 'type' => 'boolean',
  ...
  338        
  339        $action_parameters['Locks']['LocksShow'] = $action_parameters['Locks']['LocksHide'] = array(
  340:          'context' => array( //Parameters to fill automatically when in psyche locks conversation, hidden from the user.
  341              'parent_dialogue' => array(
  342                 'type' => 'dialogue_descriptor',
  ...
  347        
  348        $action_parameters['Locks']['LocksBreak'] = array(
  349:          'context' => array( //Parameters to fill automatically when in psyche locks conversation, hidden from the user.
  350              'parent_dialogue' => array(
  351                 'type' => 'dialogue_descriptor',
  ...
  399        $action_parameters['Input'] = array();
  400        $action_parameters['Input']['MultipleChoices'] = array(
  401:          'context' => array( //Parameters to fill automatically when in psyche locks conversation, hidden from the user.
  402              'parent_dialogue' => array(
  403                 'type' => 'dialogue_descriptor',
  ...
  432        
  433        $action_parameters['Input']['AskForEvidence'] = array(
  434:          'context' => array( //Parameters to fill automatically when in psyche locks conversation, hidden from the user.
  435              'parent_dialogue' => array(
  436                 'type' => 'dialogue_descriptor',
  ...
  482        
  483        $action_parameters['Input']['PointArea'] = array(
  484:          'context' => array( //Parameters to fill automatically when in psyche locks conversation, hidden from the user.
  485              'parent_dialogue' => array(
  486                 'type' => 'dialogue_descriptor',

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\includes\legacy_blocks.php:
  189                 $frame_mode = LOCKS_CONVERSATIONS;
  190                 
  191:                //remove action : none necessary at start of psyche locks conversation
  192                 $frame_data['action_name'] = '';
  193                 $frame_data['action_parameters'] = array();
  ...
  975           }
  976           
  977:          //Handle messed up psyche locks structure
  978           if($dialogue['locks'] != null)
  979           {

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Javascript\display_engine_locks.js:
    1  /*
    2: Ace Attorney Online - Psyche locks display engine
    3 
    4  */

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Javascript\editor_frames_scene.js:
  394  }
  395 
  396: // Psyche locks editor
  397  function locksEditor(dialogue)
  398  {
  ...
  614     if(dialogue.locks)
  615     {
  616:       // If psyche locks are enabled, include locks edition tools
  617        
  618        // Button to open locks editor
  ...
  648     else
  649     {
  650:       // If psyche locks are disabled, add button to enable them.
  651        dialogue_setting_fields.push({
  652           type: 'button',

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Javascript\editor_rowmaps_frames.js:
  285              if(dialogue.locks)
  286              {
  287:                //Psyche locks conversation
  288                 conv_start_index = getRowIndexById('frames', dialogue.locks.start) + 1;
  289                 conv_end_index = getRowIndexById('frames', dialogue.locks.end) - 1;

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Javascript\player_actions.js:
  327           {
  328              dialogue.locks.hidden = hidden;
  329:             //TODO : add psyche locks to debugger
  330           }
  331           showSkipButton();
  ...
  338           break;
  339           
  340:       // Psyche locks actions
  341        
  342        case 'LocksShow':
  ...
  695           break;
  696        
  697:       // Psyche locks actions
  698        
  699        case 'LocksEnd':
  ...
  913           setClass(bottom_screen, 'options back'); // Display the options panel and back button
  914           
  915:          // Set the psyche locks button if needed
  916           if(dialogue.locks && !dialogue.locks.hidden)
  917           {

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Languages\de\music.js:
   48  "default_music_Ace Attorney 2/12 - Pursuit ~ Cornered (Variation)" : "12 - Pursuit ~ Cornered (Variation)",
   49  "default_music_Ace Attorney 2/13 - Jingle ~ Cant Sleep on a Night Like This" : "13 - Jingle ~ Cant Sleep on a Night Like This",
   50: "default_music_Ace Attorney 2/14 - Psyche Lock" : "14 - Psyche Lock",
   51  "default_music_Ace Attorney 2/15 - Search ~ Opening 2002" : "15 - Search ~ Opening 2002",
   52  "default_music_Ace Attorney 2/16 - Maya Fey ~ Turnabout Sisters Theme 2002" : "16 - Maya Fey ~ Turnabout Sisters Theme 2002",
   ..
  416  "default_music_Remixes/Trailers - GS1 - Gyakuten Sisters Theme 2001" : "Trailers - GS1 - Gyakuten Sisters Theme 2001",
  417  "default_music_Remixes/Trailers - GS1 - Investigation - Cornered" : "Trailers - GS1 - Investigation - Cornered",
  418: "default_music_Remixes/Trailers - GS2 - Psyche Lock" : "Trailers - GS2 - Psyche Lock",
  419  "default_music_Remixes/Trailers - GS3 - Court Begins" : "Trailers - GS3 - Court Begins",
  420  "default_music_Remixes/Trailers - GS3 - Godot - The Fragrance Of Dark Coffee" : "Trailers - GS3 - Godot - The Fragrance Of Dark Coffee",

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Languages\en\editor.js:
  237  "actionCategory_EditEnvironment" : "Edit the game environment",
  238  "actionCategory_Health" : "Manage player's health",
  239: "actionCategory_Locks" : "Animate psyche-locks",
  240  "actionCategory_Input" : "Ask for player's input",
  241  "actionCategory_Vars" : "Manage variables",
  ...
  256  "action_HideTalkTopic" : "Hide a talk topic",
  257  "action_RevealTalkTopic" : "Reveal a talk topic",
  258: "action_HideDialogueLocks" : "Hide psyche locks button",
  259: "action_RevealDialogueLocks" : "Reveal psyche locks button",
  260: "action_LocksHide" : "Hide the psyche locks",
  261: "action_LocksShow" : "Show the psyche locks",
  262: "action_LocksBreak" : "Break psyche locks",
  263  "action_FlashHealth" : "Set flashing health points",
  264  "action_SetHealth" : "Set player's health points",
  ...
  372  "dialogue_main_screen" : "Main frame screen editor",
  373  "dialogue_main_music" : "Main frame music",
  374: "locks_add" : "Add psyche-locks conversation",
  375: "locks_remove" : "Remove psyche-locks conversation",
  376: "locks_remove_confirm" : "Are you sure you wish to delete this psyche-locks conversation ? This action is irreversible.",
  377: "locks_edit" : "Edit number and position of psyche-locks",
  378: "locks_editor" : "Psyche-locks editor",
  379: "add_dialogue_locks" : "Add a psyche-lock",
  380  "dialogue_intro" : "Introduction conversation",
  381  "dialogue_intro_description" : "The introduction conversation is read the first time the player reaches this dialogue, and hidden afterwards. You can, however, reveal or hide it manually with actions.",
  ...
  390  "dialogue_present_others" : "Presenting other evidence",
  391  "add_present_conversations" : "Add a new present conversation",
  392: "dialogue_locks" : "Psyche-Locks",
  393  "dialogue_locks_description" : "This conversation can be accessed using the magatama button ingame. While in this conversation, you can set \"player input\" actions to display a back button. You can also use lock actions (Show, Break and Hide) to control the animations.",
  394: "dialogue_locks_conv" : "Psyche-Locks conversation",
  395 
  396 

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Languages\en\music.js:
   48  "default_music_Ace Attorney 2/12 - Pursuit ~ Cornered (Variation)" : "12 - Pursuit ~ Cornered (Variation)",
   49  "default_music_Ace Attorney 2/13 - Jingle ~ Cant Sleep on a Night Like This" : "13 - Jingle ~ Cant Sleep on a Night Like This",
   50: "default_music_Ace Attorney 2/14 - Psyche Lock" : "14 - Psyche Lock",
   51  "default_music_Ace Attorney 2/15 - Search ~ Opening 2002" : "15 - Search ~ Opening 2002",
   52  "default_music_Ace Attorney 2/16 - Maya Fey ~ Turnabout Sisters Theme 2002" : "16 - Maya Fey ~ Turnabout Sisters Theme 2002",
   ..
  416  "default_music_Remixes/Trailers - GS1 - Gyakuten Sisters Theme 2001" : "Trailers - GS1 - Gyakuten Sisters Theme 2001",
  417  "default_music_Remixes/Trailers - GS1 - Investigation - Cornered" : "Trailers - GS1 - Investigation - Cornered",
  418: "default_music_Remixes/Trailers - GS2 - Psyche Lock" : "Trailers - GS2 - Psyche Lock",
  419  "default_music_Remixes/Trailers - GS3 - Court Begins" : "Trailers - GS3 - Court Begins",
  420  "default_music_Remixes/Trailers - GS3 - Godot - The Fragrance Of Dark Coffee" : "Trailers - GS3 - Godot - The Fragrance Of Dark Coffee",

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Languages\en\sounds.js:
   39  "default_sounds_Photo" : "Sound effects|Camera click",
   40  "default_sounds_Pistolet Extraterrestre" : "Character sounds|Oldbag - Ray gun",
   41: "default_sounds_Rolling" : "Psyche-locks|Psyche-Locks appear",
   42  "default_sounds_Rumeur" : "Court|Gallery speaking",
   43  "default_sounds_SelectJingle" : "Sound effects|New evidence",
   44: "default_sounds_Shatter" : "Psyche-locks|Lock breaks",
   45  "default_sounds_Shing" : "Speaking expressions|Shouting",
   46  "default_sounds_Shock" : "Speaking expressions|Waaah!",

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Languages\es\music.js:
   48  "default_music_Ace Attorney 2/12 - Pursuit ~ Cornered (Variation)" : "12 - Pursuit ~ Cornered (Variation)",
   49  "default_music_Ace Attorney 2/13 - Jingle ~ Cant Sleep on a Night Like This" : "13 - Jingle ~ Cant Sleep on a Night Like This",
   50: "default_music_Ace Attorney 2/14 - Psyche Lock" : "14 - Psyche Lock",
   51  "default_music_Ace Attorney 2/15 - Search ~ Opening 2002" : "15 - Search ~ Opening 2002",
   52  "default_music_Ace Attorney 2/16 - Maya Fey ~ Turnabout Sisters Theme 2002" : "16 - Maya Fey ~ Turnabout Sisters Theme 2002",
   ..
  416  "default_music_Remixes/Trailers - GS1 - Gyakuten Sisters Theme 2001" : "Trailers - GS1 - Gyakuten Sisters Theme 2001",
  417  "default_music_Remixes/Trailers - GS1 - Investigation - Cornered" : "Trailers - GS1 - Investigation - Cornered",
  418: "default_music_Remixes/Trailers - GS2 - Psyche Lock" : "Trailers - GS2 - Psyche Lock",
  419  "default_music_Remixes/Trailers - GS3 - Court Begins" : "Trailers - GS3 - Court Begins",
  420  "default_music_Remixes/Trailers - GS3 - Godot - The Fragrance Of Dark Coffee" : "Trailers - GS3 - Godot - The Fragrance Of Dark Coffee",

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\Languages\es\sounds.js:
   42  "default_sounds_Rumeur" : "Tribunal|Tribunal hablando",
   43  "default_sounds_SelectJingle" : "Efectos|Nueva prueba",
   44: "default_sounds_Shatter" : "Psyche-locks|Candado rompiendose",
   45  "default_sounds_Shing" : "Expresiones|Grito",
   46  "default_sounds_Shock" : "Expresiones|Waaah!",

AceAttorneyOnline-aao-game-creation-engine-5b28587f06a3\trunk\player.php:
   75                 <a class="bs-button topleft" id="press" data-locale-content="press"></a>
   76                 <a class="bs-button topmiddle" id="present-center" data-locale-content="present"></a>
   77:                <a id="locks"><img src="img/magatama.gif" alt="Psyche locks" /></a>
   78                 <a class="bs-button topright"  id="present-topright" data-locale-content="present"></a>
   79              </div>

55 matches across 19 files
Avatar de l’utilisateur
Singidava
 
Message(s) : 1621
Inscription : Ven Juil 23, 2010 6:56 pm
Localisation : Finland
Genre: Féminin
Langues parlées: Suomi, English & 日本語

Re: Development news : AAO goes open-source NOW ! 

Message par Enthalpy » Sam Juin 20, 2015 6:57 am

I started reading over the display engine, while on the hunt for the recent bug in Chrome, when I came across this in display_engine_global's set_transition function:

Code : Tout sélectionner
   if(!node)
   {
      //if node has been deleted while transitioning, do not crash
      return;
   }


How exactly would the node be deleted? I can't find any possibilities through either reading the code, or experimenting in the editor or player.

EDIT: Oh, and have you looked at the changes I made to the "code beautification" pull request since you first commented on them?
[D]isordered speech is not so much injury to the lips that give it forth, as to the disproportion and incoherence of things in themselves, so negligently expressed. ~ Ben Jonson

Current AAO Development Priority: Issue #94: Grayscale Mode
Avatar de l’utilisateur
Enthalpy
Community Manager
 
Message(s) : 4380
Inscription : Mer Jan 04, 2012 4:40 am
Genre: Masculin
Langues parlées: English, limited Spanish

Re: Development news : AAO goes open-source NOW ! 

Message par Enthalpy » Sam Juin 27, 2015 10:17 am

...And another question.

In object_buffer_wrappers, what is the point of having the extension wrappers in, since there doesn't seem to be any code that uses them, and why have the buffer wrappers at all, instead of just editing the trial_data variable?

Sorry if this is too many questions. These aren't clearly answered in the comments, and this is coming up in my attempts to do the thorough root-out of the Chrome bug.

EDIT: Figured out the reason for the buffer wrappers. This mechanism allows the in-player changes to the trial file to carry over even when the author changes the core trial file. Otherwise, a player loading their save would have the old version of the game, instead of the new!
[D]isordered speech is not so much injury to the lips that give it forth, as to the disproportion and incoherence of things in themselves, so negligently expressed. ~ Ben Jonson

Current AAO Development Priority: Issue #94: Grayscale Mode
Avatar de l’utilisateur
Enthalpy
Community Manager
 
Message(s) : 4380
Inscription : Mer Jan 04, 2012 4:40 am
Genre: Masculin
Langues parlées: English, limited Spanish

Re: Development news : AAO goes open-source NOW ! 

Message par Unas » Lun Juil 06, 2015 12:17 am

Sorry, I haven't been nearly as present as I hoped lately.
FYI, I'm preparing the push of the first batch of updates since I received your pull requests - I expected to do that a few weeks ago but was stalled by technical issues : apparently, a lot of data was corrupted on the AAO server, in the directory I use to deliver updates to the site. Thankfully it did not affect the site itself, but it takes a little bit of time to understand roughly what happened and restore everything properly without risking anything.

Now on to your questions :

Enthalpy a écrit :How exactly would the node be deleted? I can't find any possibilities through either reading the code, or experimenting in the editor or player.

To be honest, neither can I, but still, the issue occured quite often, so I had to handle this case. I guess it's related to the order of events if I change the displayed sprite several times quickly for example.
Keep in mind that this is event-based programming : there is never any guarantee on the order of execution of different event handlers after all. There are bound to be unforeseen situations every once in a while. In this case it's often simpler to use some kind of "defensive programming" on the event handlers so that they check if it made any sense calling them in that situation and act accordingly.

Enthalpy a écrit :what is the point of having the extension wrappers in, since there doesn't seem to be any code that uses them

Because all the code soon will :-P
Extension wrappers are what allows to extend an object with default properties as defined in an object model. This is how I will manage future extensions of the V6 trial data format : I can add a new structure to the object model, and it will automatically added at runtime with default values (thanks to this extension wrapper) on all existing trials.
It avoids the need for the editor and player code to have null checks everywhere to handle legacy trials.

Enthalpy a écrit :EDIT: Figured out the reason for the buffer wrappers. This mechanism allows the in-player changes to the trial file to carry over even when the author changes the core trial file. Otherwise, a player loading their save would have the old version of the game, instead of the new!

True, but not only. It also greatly reduces the size of game saves. Remember that some people here tend to write very big, very long cases : dumping the whole trial data into each game saves would make the size of those explode.

More generally, buffer wrappers allow me to know what exactly was changed in the wrapped object : this is important information for a future evolution I have in mind.
ImageImageImage
If knowledge can create problems, it is not through ignorance that we can solve them.
Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. ( Isaac Asimov )
Avatar de l’utilisateur
Unas
Admin / Site programmer
 
Message(s) : 8787
Inscription : Mar Juil 10, 2007 4:43 pm
Genre: Masculin
Langues parlées: Français, English, Español

Précédent

Retour vers News and Announcements

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité