code34 248 Posted November 4, 2017 OOP LANGUAGE version : 0.5 Release: https://github.com/code34/oop.h/releases/ Wiki : https://github.com/code34/oop.h/wiki reference : Initial project Hi Guys, As certainly a part of you know, it's a long time i develop now in OO way with ARMA and OOP. It is definitely great and allowed me to develop a large number of projects that would have been complicated to realize with simply sqf. This type of language will certainly be used more and more in arma in the years to come As the original author of preprocessor file no longer maintain it since end of 2013, and totaly delete its project since a while, and i still to use and improve it, i fork it now. I just create a GIT PROJECT under GPL3 (original licence when i retrieve oop.h in RBS project). All contributions are welcome :) I also create a Wiki that explains how to use OOP Features Human-readable syntax that closely resembles PHP's OOP integration. Extensively documented source-code for ease-of-use. Only one header file, and it's fully macro-based, and only executed by the preprocessor. Implements full class-based object inheritance. Compiles to full-speed SQF code, so no need for run-time interpretation! Allows for public, protected, and private class members, for instituting complex objects and inheritance. Full support for polymorphism (to the limits of the SQF syntax). Small memory footprint - all functions are static, and no code is unnecessarily duplicated. Support for constructors and deconstructors. Completely recursive via the MEMBER macro. Allows for static variables, which are persistent to all classes of the same type. Note: Objects cannot be copied to other machines just by sending the object variable - all data members (object variables) need to be serialized (preferably to an array), transferred, and then added to a new object on the remote machine. 5 Share this post Link to post Share on other sites
code34 248 Posted November 8, 2017 Hi I update the wiki with major informations :) https://github.com/code34/oop.h/wiki Home 1. Introduction, first steps 2. Classes declaration 2.1 Constructor & Deconstructor 3. Functions declaration 4. Variables Declaration 5. Variables Accessor 6. Functions Call 7. Recursion Debug Entrypoint OOP LIBRARY Reserved variables im looking for a tester and re reader about this :) 1 Share this post Link to post Share on other sites
code34 248 Posted November 13, 2017 Hi any news about the wiki ? Does it need some additionnals informations ? Share this post Link to post Share on other sites
code34 248 Posted November 23, 2017 Hello To give more information on further development. I just added a branch develop in the git where I add new features. If you feel the soul to try (..) Develop branch: I just added two NEW Macros NEW, DELETE for call constructor methods A new STATIC_FUNC macro to call static method. Any returns /ideas are welcome. New release v0.3 The static function are also already avalaible though the new release (master branch) via the "static" keyword ["static", [function, args]] call CLASS; singleton implementation example PRIVATE STATIC_VARIABLE("code","instance"); PUBLIC FUNCTION("","getInstance") { DEBUG(#, "OO_CLASS::getInstance") private _instance = MEMBER("instance", nil); if(isnil "_instance") then { _instance = "new" call OO_CLASS; MEMBER("instance", _instance); }; _instance; }; _instance = ["static", ["getInstance"]] call OO_CLASS; 1 Share this post Link to post Share on other sites
code34 248 Posted December 1, 2017 Hi Just add the French language support to wiki https://github.com/code34/oop.h/wiki/[FR]-0.-Home 1 Share this post Link to post Share on other sites
code34 248 Posted December 2, 2017 Hi Minipopov just released a Sublim addon for OOP :) https://github.com/minipopov/Sublime_Text_OOP Share this post Link to post Share on other sites
code34 248 Posted December 27, 2017 Hi We (Minipopov and me) just released the 0.4 version Change logs: New macro: NEW, DELETE for call constructor methods : NEW(CLASS, "parameter"); DELETE(instance); New macro: STATIC_FUNC macro to call static method STATIC_FUNC(CLASS, "function", "parameter"); New macro : UI_VARIABLE(typeStr,varName) declare UI control New macro: STATIC_UI_VARIABLE(typeStr,varName) declare UI static control "protected" call CLASS : to protect against overwrite the CLASS (like compileFinal) New macro : MEMBER("this", nil) replace _self New macro: DELETE_UI_VARIABLE(varName); New macro : UIVAR_DFT_FUNC, SUIVAR_DFT_FUNC 1 Share this post Link to post Share on other sites
code34 248 Posted January 2, 2018 Hi :) Just update the library lists concerning OOP https://github.com/code34/oop.h/wiki/9.-OOP-LIBRARY Share this post Link to post Share on other sites
davidoss 552 Posted January 2, 2018 OOP LANGAGE where are the "U"? Anyway, a dream to understand this somehow Share this post Link to post Share on other sites
code34 248 Posted January 3, 2018 so big that i didn't see it :) thanks you. Share this post Link to post Share on other sites
code34 248 Posted May 10, 2018 Hi Minipopov and me we just release an new oop.h version that we test since few months: https://github.com/code34/oop.h/releases/tag/0.5 Changes log: This release delivers new features: Inheritance Add Exceptions management Generate an exception when a member is not declared, or not declared with right parameters Add SUPER() for inheritance of code Add SPAWN_MEMBER for async code 1 Share this post Link to post Share on other sites
Guest Posted May 11, 2018 The Armaholic mirror has been updated with the new version: OOP Language v0.5 PS: can you let me know if the scripts section is the appropriate dection for this in our downloadsection? Share this post Link to post Share on other sites
code34 248 Posted May 11, 2018 hello Foxhound :) thanks for the update Share this post Link to post Share on other sites
code34 248 Posted May 12, 2018 22 hours ago, foxhound said: The Armaholic mirror has been updated with the new version: PS: can you let me know if the scripts section is the appropriate dection for this in our downloadsection? Yes it is :) Share this post Link to post Share on other sites
Sparker 185 Posted May 25, 2018 I've had a look at oop.h. Naught and you probably have a degree in preprocessor magic and its applications! Really impressive. I'll give it a try some time soon! I was considering one thing though. Is it faster to store all object's methods in global namespace or can it be made faster if I create objects with createVehicle and store its member variables there? Does it make any sence to spend time doing this, what do you think? It appears to me at the first glance that manipulating variables in mission namespace is pretty fast. Share this post Link to post Share on other sites
code34 248 Posted May 25, 2018 hi, thanks you to watch our project. Do you think the performance aspect is the main one ;) To answer your question, actually used createvehicle is slower than variables because you will need to create entity wich used memory space, and this can be long if you create a lot. There are many solutions, but it remains paliatives while waiting for a real native language 1 Share this post Link to post Share on other sites
Sparker 185 Posted May 26, 2018 I thought that creating very many member variables in the missionNamespace might degrade the lookup time for accessing them. Though, storing the variables in sub-namespaces (engine's vehicles or other kinds of objects) might help it. But actually all these BIS_fnc functions and functions from our own missions already occupy the missionNamespace, there are about 2 thousand of them total IIRC, so probably storing member variables from 100 "objects" or so doesn't change anything much. Share this post Link to post Share on other sites