Skip to content

Conversation

@LB--
Copy link
Contributor

@LB-- LB-- commented Oct 21, 2012

I've done a massive amount of restructuring and fixing up in general of EDIF. Mainly, Edittime.cpp and Runtime.cpp have been split into more specific files, the project in VC++ has nice folder views to organize it all, I've created an EditData class to make dealing with the editdata easier, and I've added a LOT of documentation-style comments. I've also started work on the wiki.

It may take a while to look over all the changes...GitHub had a hard time making the diffs and it seems to just have given up on a lot of them.

Upgrading from previous versions of EDIF

For past extensions to be upgraded they just have to remove the editdata structure from Common.h and add the EditData class and design it to load/save their old editdata. There's no need to touch UpdateEditStructure. Other than that, older extension projects are fully compatible with the changes.

Full list of changes

  • Added a .gitattributes file, main purpose is for LF normalization
  • Changed the .gitignore file for a modified version of the standard one
  • AutoCopy.bat got normalized by git
  • Added documentation to all the files users will be dealing with normally
  • Added BuildSettings.vsprops so the extension filename can be changed once for all 9 build configurations
  • Removed EDITDATA from Common.h, it is now global to all extensions; the EditData class is used for dealing with the editdata instead and allows for full reverse-compatibility for older extensions
  • Added a typedef of std::basic_string called stdtstring as a convenience for unicode support
  • Made it possible to set the relaxed commas flag for the JSON on a per-extension basis
  • Some program I used to try and fix formatting converted tabs to spaces before crashing, I can try and reverse it manually if needed
  • Re-organized the tree structure for the template project
  • Added CustomParams.cpp which splits off custom parameter functions from Edittime.cpp
  • Added Debugger.cpp which splits off debugger functions from Runtime.cpp
  • Added EditData.hpp which defines a class that handles the editdata
  • Reduced Edittime.cpp to only miscellaneous functions, other functions have been split into more specific files
  • Fixed a memory leak involving comparing the number of objects to 0 instead of 1 to determine when the last is removed
  • Renamed some functions in the template project and adjusted the Ext.def file to export them with the correct names for MMF2
  • Made the example A/C/Es Unicode-friendly
  • Reformatted template JSON
  • Removed #ifndef VITALIZE checks from Extension::Save() and Extension::Load() (as far as I can see there is no support for Vitalize anymore)
  • Fixed possible crashes with unlinked expressions
  • Renamed Extension.h to Extension.hpp for conventonal purposes (can be undone)
  • Added some default OEFLAGs that, in my opinion, should be standard to most extensions
  • RUNDATA and EDITDATA have been renamed to RD and SerializedED respectively, and typedefs exist for the RUNDATA and EDITDATA aliases
  • Updated default MinimumBuild value to 255
  • Made General.cpp less scary
  • Added Properties.cpp which splits off property functions from Edittime.cpp
  • Reduced Runtime.cpp to only miscellaneous functions, other functions have been split into more specific files
  • Added global data example for StartApp/EndApp/StartFrame/EndFrame
  • Added static versions of Edif::Runtime::ReadGlobal and Edif::Runtime::WriteGlobal to make the above possible
  • Added Text.cpp which splits off text functions from Runtime.cpp
  • Added TextProps.cpp which splits off text properties functions from Edittime.cpp
  • More formatting that looks OK in VC++ but looks bad in GitHub (will probably convert tabs back to spaces)
  • Fixed and then promptly unfixed a typo that, when fixed, caused compiler errors despite a good intention
  • Removed "using namespace std;" pollution from Edif.h and instead polluted specific Edif cpp files that needed it
  • Tried to match existing styles when amending or adding to Edif internals
  • Updated links that pointed to the old CT forums
  • Tried to fix broken alignment in some places
  • Updated parameter list for StartFrame/EndFrame; the void * is a CRunApp *
  • Visually compacted ReadParameterType and ReadExpressionParameterType
  • Added edittime mssagebox that alerts users that they forgot to rename their extension from Template.mfx
  • Made it possible to implement conditions that use comparison parameters(eg PARAM_COMPARAISON)
  • Updated the json-parser to the latest version
  • Renamed README to README.md and made it more helpful bu having links that point to the wiki
  • Fixed an issue with AutoInstall.bat that required the project to have no spaces in its pathname
  • Includes Looki's HWA fixes, pre-merged for convenience

LB-- added 30 commits October 20, 2012 00:42
I did this one without access to any compiler - will have to check if it works later.
BuildSettings.vsprops applies to all build configurations and currently
defines the MFX_Name macro (default "Template.mfx"), which can be
changed in this one file to reflect among all the build configurations.
The message displayed when inserting an EDIF extension named
Template.mfx now includes proper instructions for renaming the MFX. In
the project tree view, ObjectSelection.h/.cpp are in a Riggs folder now
(based on the namespace they are in).
I need to find a way to have it be automated...
It shows the name of the extension from the JSON in the dialog titlebar.
@LB--
Copy link
Contributor Author

LB-- commented Dec 29, 2012

If I could at least get a word on when somebody will look over this, that would be great. Having this just sit here with no idea when it will be integrated or under what conditions is frustrating for me...

@SortaCore
Copy link

It's generally accepted that Clickteam are sometimes extremely, extremely slow for responses. Not because the people are lazy, but because there's just not enough manpower. Me and Mathias have had a similar experience.

@LB--
Copy link
Contributor Author

LB-- commented Apr 6, 2013

Hopefully merging in Looki's HWA fixes has made this PR easier to merge - I can't tell from this end though. I think I could try the merge myself by pulling this repo and merging my own, but I'm still not very good with git.

Add Looki's changes for D3D surface info
@jamesamcl
Copy link

A lot of this I want to accept, but some changes are very major, and perhaps beyond the scope of what Edif is trying to provide. It's possible we could split Edif into a base SDK (the current Edif structure) and something more complete (your fork).

@LB--
Copy link
Contributor Author

LB-- commented Apr 9, 2013

I think I like that idea - an updated "basic" SDK with an updated "power" template, you mean?

@jamesamcl
Copy link

I'd be open to having your template next to the basic template in this repository.

@LB--
Copy link
Contributor Author

LB-- commented Apr 9, 2013

Sure thing - I'll start doing what I can to make this all happen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants