I've already solved most of the difficult problems with using WINAPI and the gui is mostly complete. there are still dialog boxes to populate and the majority of components that havn't been created still need to be wired into the windows message clallback service. created components are going through that process now.
After this part I'll be dealing mostly with event driven straight C++ working at quite a low level through memory manipulation, buffers and the like. I have no interest in porting it to other operating systems yet, but regardless it will not be difficult down the track.
If someone want's to down the road, they would only need to deal with with the specific OS message service and events + gui creation. Aside from that the vast majority of the logic and architecture will remain identical. QUICK_EDIT
Mortecha, notify me when you have a complete implementation of the Format80 compression
What is wrong with the XCC implementation (aside the fact that it isn't as efficient as the WW one)? format80 is actually called LCW compression BTW. I'd worry more about format40 (which is actually called XorDelta), I tried to use the code from XCC for a WSA creator, but it crashed the decoder on some images so I think it has problems with large frames. QUICK_EDIT
After thinking about it for quite some time, I feel that it would be quite unfair to limit this to just Windows and would be quite selfish of me to develop this just for Windows. Also I should essentially match the platforms of the intended audience, which are people who want to make mods for TD through to YR and people who make mods for OpenRA on Windows, OSX and Linux.
Also I have really enjoyed programming directly with WinAPI, was quite the challenge too but I feel that far too little progress gets made for the amount of code written. I am still working on the GUI and as Uni has started again I'll have little time to work on it over the next 2.5 months. So as it's still rather quiet at the moment, after homework is complete I'll change the project to implement wxWidgets. I feel that Qt is too commercialised.
On the point raised about Format80, the smart thing to do would be to look at how the OpenRa devs have dealt with it and translate the C# to C++, with credits given of course. Why reinvent the wheel? QUICK_EDIT
The OpenRA code is terrible, their LCW encoder it a token effort at best, only using 2 of the 5 possible encoding methods from the looks of it and they haven't even attempted an XorDelta encoder, certainly not even close to being able to roundtrip a WW encoded .shp or .wsa.
I have written prototype XorDelta compression code that can do marginally better than the WW encoder on fairly random data (like that found in choose.wsa in C&C), but needs more testing and development to ensure it most efficiently handles long runs that are the same across the frames being encoded. QUICK_EDIT
I had no idea that their code for handling the format was on the sketchy side. I am sure they will fix it in the future. If that is the case then I may also go along with my original idea and translate the old Delphi code from OS Shp Builder, then improve on it when I understand the format.
I would be more than happy to include your XorDelta algorithm into SHPoid if your are interested in doing so. QUICK_EDIT
An SHP plugin for GIMP would be great. Excellent idea.
Though i wonder if that even works.
GIMP has only one layers list, so it can be only used for
either multiple SHPs
or the frames of one SHP
To handle multiple SHPs with each having multiple frames, GIMP would need a way to go through the frames without using the Layers list to the show them.
Or the Layers menu needs to be expanded to have a tree view with root nodes for the SHPs and child nodes under them for the frames. So one Layers menu can show both, files and frames.
Though having 2000 nodes in the Layers menu for 2000 frames of one tiny infantry SHP would be very inconvenient too.
I guess best would be if a special SHP toolbox opens when you use GIMP with the SHP plugin. _________________ SHP Artist of Twisted Insurrection: Nod buildings
Joined: 22 Nov 2010 Location: Iszkaszentgyorgy, Hungary
Posted: Wed Mar 04, 2015 4:58 pm Post subject:
When exported to a GIF, each layer ends up being frames in GIMP. I don't see why should this be different. _________________ "If you didn't get angry and mad and frustrated, that means you don't care about the end result, and are doing something wrong." - Greg Kroah-Hartman
=======================
Past C&C projects: Attacque Supérior (2010-2019); Valiant Shades (2019-2021)
=======================
WeiDU mods: Random Graion Tweaks | Graion's Soundsets
Maintainance: Extra Expanded Enhanced Encounters! | BGEESpawn
Contributions: EE Fixpack | Enhanced Edition Trilogy | DSotSC (Trilogy) | UB_IWD | SotSC & a lot more... QUICK_EDIT
Because it would be useful to be able to open more than 1 SHP.
With multiple SHPs open, you have only one huge list of frames in the layers.
During export, GIMP would have no clue which frames it should use for the export.
And as a user it is extremely impractical to have 1000 layers for only 1 SHP.
Especially since GIMP has no "hide all layer" button, so you can make only 1 frame visible
or a way to go through the frames one by one, without having to make the previous frame/layer invisible and the next frame/layer visible. _________________ SHP Artist of Twisted Insurrection: Nod buildings
For multiple images you can do what you already do in GIMP with all images: use the one-window view with tabs or the multi-window view where each image is displayed in its own window.
Quote:
Especially since GIMP has no "hide all layer" button, so you can make only 1 frame visible
Hold Ctrl + Shift and click on the eyeball of the only layer you want to see.
Well, with the steady progress of GIMP, a plugin seems to be like the best solution.
Combining the drawing power of GIMP with SHP support would be marvelous.
However, i still see a small issue. What about the special SHP frame settings?
Each frame can afaik have a radar color. Where would you show an editable box for that?
An option to show image and shadow frames as one, to see if it looks good, would be surely necessary too.
I think a separate toolbox with all the special SHP functions and settings would be still the best solution.
Then you can use the normal GIMP interface for the usual image stuff, and the separate toolbox would give you access to the special SHP settings like
-frame nr numericupdownbox
-show shadow+image combined checkbox
-load/select color palette
-add/remove frame and other frame operations
-show center lines (for adjusting the image)
-show cellgrid (with options to set any x/y cell size, so you can also use it later for bigger cells with 96x48 cells like Rewire)
-a label showing the used compression format
-special drawing functions like "Draw on frames n to m", where you can set the start and end frames and then a pencil drawing will be done on all these frames (very useful for mass frame fixes)
... _________________ SHP Artist of Twisted Insurrection: Nod buildings
Well, with the steady progress of GIMP, a plugin seems to be like the best solution.
Combining the drawing power of GIMP with SHP support would be marvelous.
However, i still see a small issue. What about the special SHP frame settings?
Each frame can afaik have a radar color. Where would you show an editable box for that?
An option to show image and shadow frames as one, to see if it looks good, would be surely necessary too.
I think a separate toolbox with all the special SHP functions and settings would be still the best solution.
Then you can use the normal GIMP interface for the usual image stuff, and the separate toolbox would give you access to the special SHP settings like
-frame nr numericupdownbox
-show shadow+image combined checkbox
-load/select color palette
-add/remove frame and other frame operations
-show center lines (for adjusting the image)
-show cellgrid (with options to set any x/y cell size, so you can also use it later for bigger cells with 96x48 cells like Rewire)
-a label showing the used compression format
-special drawing functions like "Draw on frames n to m", where you can set the start and end frames and then a pencil drawing will be done on all these frames (very useful for mass frame fixes)
...
All that is way too complicated for a plugin, it would require a fork of Gimp since a lot of that would need really significant modifications.
As for that for PS,
- prob the animation panel could work similarly if one can figure out how to get PS to read the SHP as a animation
- can't be done
- already has it, it might even be possible to write a file plugin so PS can read WW's pal's, dunno if you can extend the palette format support tho.
- i'd imagine something could be coded for that
- guides kinda replace that,
- can be done in a plugin,there are a few that can draw iso grids even
- maybe possible to get the tile bar to show that
- nope.
Best option would be a SHP editor but with a feature to export the whole shp to a PSD/Gimp xcf/tiff(cause those support layers) so it can be modified and a option to import those files back and assemble the shp. _________________ Tiberian Dawn, Red Alert, Tiberian Sun ,Red Alert 2,Renegade, Command & Conquer 3,Tiberium and Tiberium Wars and Westwood related image & video archive
https://picasaweb.google.com/113361105083292812413?noredirect=1
Skype live:tomsons26
Don't forget to state who are you otherwise i'll ignore the invite QUICK_EDIT
I think a plugin would be awesome if someone makes it, I'll keep on working on the standalone application though as a plugin limits modders to the use of Gimp if that is the application the plugin will be for. QUICK_EDIT
Because it's going to be on Linux soon.
The map renderer works with C#, do you dislike that 'garbage' as well?
Maybe it's better to write it in Java then, everybody happy..!
Seriously though, why make it hard on yourself if there's a simple way? .NET may not be the surpreme language you want, but if it gets the job done well, who gives a fuck? _________________
Exley, those programs were all written decades ago, when there wasn't even a .NET yet.
That "garbage set" also speeds up program development significantly. If you would have written a program, you would have noticed that.
With .NET you don't have to program every single button and textbox. You have a designer with which you can drag&drop very quick your interface together.
You also don't have to use a pointer on a list of bytes with each representing a char, only because you want to store a simple string.
.NET might not be platform independent, but being able to create a program in minutes than in hours is useful _________________ SHP Artist of Twisted Insurrection: Nod buildings
Joined: 22 Nov 2010 Location: Iszkaszentgyorgy, Hungary
Posted: Thu Mar 05, 2015 4:30 pm Post subject:
ummm... LKO, C++ actually catches up quite good with std for usual programming (std::string says hi) - GUI is the sole place where I can see some kind of benefits of .NET.
Exley, XCC setup is crapware tbh, I wanted to compile it once just for fun and after I wasted a GB for dependencies and it still asked for more I gave up. _________________ "If you didn't get angry and mad and frustrated, that means you don't care about the end result, and are doing something wrong." - Greg Kroah-Hartman
=======================
Past C&C projects: Attacque Supérior (2010-2019); Valiant Shades (2019-2021)
=======================
WeiDU mods: Random Graion Tweaks | Graion's Soundsets
Maintainance: Extra Expanded Enhanced Encounters! | BGEESpawn
Contributions: EE Fixpack | Enhanced Edition Trilogy | DSotSC (Trilogy) | UB_IWD | SotSC & a lot more... QUICK_EDIT
That "garbage set" also speeds up program development significantly. If you would have written a program, you would have noticed that.
With .NET you don't have to program every single button and textbox. You have a designer with which you can drag&drop very quick your interface together.
You also don't have to use a pointer on a list of bytes with each representing a char, only because you want to store a simple string.
.NET might not be platform independent, but being able to create a program in minutes than in hours is useful
This. With Microsoft making parts of .NET open-source, it might also become more platform independent in the future.
.NET helps write code faster and it also helps with keeping the code stable and bug-free compared to something like C++. The other option is Java, but having written both C# and Java I prefer C# (plus Oracle's JVM has proven to be a huge security risk, unlike the .NET CLR). The only downside is that you need to have .NET Framework installed, but a lot of programs need it already and it's bundled with Windows so it's hardly an issue. Some people also like to claim that managed code has bad performance, and while it often is slower than unmanaged code (like C++), it's still fast enough for pretty much anything.
Many of the bigger mods in the community (the developers of which would probably be one of the most active users of this tool) also already need .NET. And OpenRA is also written in C#.
Joined: 09 May 2011 Location: Approaching the Great Pyramid
Posted: Fri Mar 06, 2015 10:15 am Post subject:
yes i'm calling it a garbage
not only because user has to download huge stack of framework for tiny program
compare visual c++ redistributals or vb versus .net
vc++ maybe 2MB
vb6 what 1 MB ?
.net auuh... tradeoff 50+MB of garbage for 1MB program
i don't see what is so worng with using vb6 still today...
yes .net with winframes makes it all few clicks
but their ngen service is pc choker
and what happens when certain .net stops being supported
on w2k, XP, heck even win9x/ME
these os-es run TS/RA2 perfect
I doubt anything past win "10" will
some .net versions are even dropped on 9x/ME/2000
and you are forced to use I guess v 4.5 ?
dunno if even vista supports it
while guess what vstudio 6 is still supported on all NT5 and 6 and 9x _________________
Joined: 22 Nov 2010 Location: Iszkaszentgyorgy, Hungary
Posted: Fri Mar 06, 2015 10:38 am Post subject:
What is so wrong with VB6?! LOL. ROFL. LMAO. Well, considering that VisualBasic itself is a retarded language compared to the epicness of BASIC - kinda like how C++/CLR being a mindrape of C++ - not to mention that preferring Visual Studio 6.0 in 2015 is like loading up a ztyping DOS IDE (like, say BorlandC++ 3.1 from '93) on a WinXP. Yes, it works. It's just retarded as hell.
You're not forced to use .NET 4.5. You can go load up your newest Visual Studio and start your new project for .NET 2.0, which still works on Win98 as well.
TBH even VS redists demand you to use a relatively used OS as well, Ares can't run on anything older than WinXP SP2 IIRC (MSVC2010 redist says hi).
But don't worry, you couldn't even showcase better that you have no fricking idea what are you even talking about even if you would have seriously tried. Retard. _________________ "If you didn't get angry and mad and frustrated, that means you don't care about the end result, and are doing something wrong." - Greg Kroah-Hartman
=======================
Past C&C projects: Attacque Supérior (2010-2019); Valiant Shades (2019-2021)
=======================
WeiDU mods: Random Graion Tweaks | Graion's Soundsets
Maintainance: Extra Expanded Enhanced Encounters! | BGEESpawn
Contributions: EE Fixpack | Enhanced Edition Trilogy | DSotSC (Trilogy) | UB_IWD | SotSC & a lot more... QUICK_EDIT
Since gimp is free and open source, there is no limitation.
Everyone can have it.
This strategy will be a limitation for people like myself who are only familiar with Photoshop:P
I am willing to say that RP was correct at the beginning when I announced that I would swap from C# to C++. My curiosity for learning more about Win32 outweighed the needs of the project as a whole. wxWidgets seems like the best choice by far, purely from a development speed and code simplification standpoint. I'll be working with that as stated before from now on.
Another design choice most of you will be happy to hear is that I'll be adopting an MVC architectural pattern. I have experience working with this throughout my Internship and both of my small contract positions I have previously held. So in the end as long as the view does it's job then the details of the implementation of the view have little impact upon the project as a whole.
Another possible way to implement this project would be to have a view built using C# and the Visual Studio Toolbox such as the prototype I had initially constructed, then interpolate C++ dlls for the controller and the model. The only concern about going down this path would be compatibility across all of the platforms.
You can post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum