Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Program] LF2 Data Changer (with real time modification of data)
#1
REAL TIME DATA CHANGER!!!!1!!!1!!!!!
DON'T HAVE TO RELOAD LF2!!!11!!!!!!!
SYNTAX HIGHLIGHTING FOR AI!!!!!1!!


This was really just a program that I wrote to learn using wxWidgets, but I might as well release it. It is a simple, non-complex and easy-to-use data changer, but more than that, it is also open source (Gnu GPL).

Screenies:
[Image: lf2dc.th.png][Image: lf2ai.th.png]

Download: http://mediafire.com/?pyrgbg5goblu5
You'll need 7-zip in order to extract the files: http://7-zip.org/

If you are just a regular user, you should download "LF2DCWindowsWTE.7z", but if you would like to experiment with the source, then download "LF2DCSource.7z".
"LF2DCWindowsWTE.7z" might trigger your Anti Virus software, and in that case either allow it to pass, or use "LF2DCWindowsNoWTE.7z". If you choose the latter option you won't have "Write To Exe" functionality.

It is built using CodeBlocks, and wxWidgets, so you are going to need those if you want to edit the source.
Technically it is built using GCC and wxWidgets, but why be so precise?
Version History (Click to View)

Feel free to post ideas and modifications, and I'll gladly try and add them.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
#2
so is it a multiplatform datachanger?
As you are using code blocks, which also works on linux and mac osx.
[sig placeholder until my new sig is finished]
should totally allow people to be all trolley on their birthday :D
Reply
Thanks given by:
#3
(06-17-2012, 04:03 PM)The Lost Global Mod Wrote:  so is it a multiplatform datachanger?
I've only compiled it for Windows, but I think it should be very easy to port to other systems, as it doesn't use any Windows dependent functions.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
Thanks given by:
#4
hm.. okay then i will try to port it and see how it does ;)
[sig placeholder until my new sig is finished]
should totally allow people to be all trolley on their birthday :D
Reply
Thanks given by:
#5
If you want to make it usefull add something like visual sprite maker working containing opoint, wpoint and cpoint.



[Image: NsiNMB9.png]

Help me and test my new game basis!




Reply
Thanks given by:
#6
What's with the deep tab there? Can we open 2 dat files at the same time like opening two webs. If you did it or can add it, it would be AWESOME!!
This place motivates me to become an artist, this place motivates me to learn coding, this place made me grow up, showed me the ways to interact with people. Unlike the old childish of me myself, I've learned a lot and gotten some experiences. For me, it's not just a fan forum, it's a helpful community. From a noob to someone who would think before he speaks, looking back at my old post made me laugh hard, I'm grateful of the differences between these 2 years.
~Thank You All and Farewell
~Goodbye, LFE.
RIP - 14/04/2014
Reply
Thanks given by:
#7
(06-17-2012, 04:27 PM)Gad Wrote:  If you want to make it usefull add something like visual sprite maker working containing opoint, wpoint and cpoint.
I will look into it.

(06-18-2012, 07:39 AM)Hero destroyer Wrote:  What's with the deep tab there? Can we open 2 dat files at the same time like opening two webs. If you did it or can add it, it would be AWESOME!!
Yes, that is indeed possible.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
Thanks given by:
#8
Yay! Something written in C++ rather than C#! All hail the almighty Someone else! I thanked your post, I've only thanked 12 things, this is how much I thank you :p. This has become my new DCer of choice (I've been using Rammichaels ancient one with no syntax highlighting for ages now because I don't need no fancy sh*t, I just want it to work and not be slow).

Edit:

Reading the source now.

    C-Code:
Connect(ID_AUITOOLBARFILENEW,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnNew);
    Connect(ID_AUITOOLBARFILEOPEN,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnOpen);
    Connect(ID_AUITOOLBARFILESAVE,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnSave);
    Connect(ID_AUITOOLBARFILESAVEAS,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnSaveAs);
    Connect(ID_AUITOOLBARFILECLOSE,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnCloseCurrentTab);
    Connect(ID_AUITOOLBAREDITUNDO,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnUndo);
    Connect(ID_AUITOOLBAREDITREDO,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnRedo);
    Connect(ID_AUITOOLBAREDITCUT,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnCut);
    Connect(ID_AUITOOLBAREDITCOPY,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnCopy);
    Connect(ID_AUITOOLBAREDITPASTE,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnPaste);
    Connect(ID_AUITOOLBAREDITSEARCH,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnToolSearch);
    Connect(ID_AUITOOLBAREDITREPLACE,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnToolReplace);
    Connect(ID_SEARCHDIALOGSEARCHFIELD,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&LF2DataChangerFrame::OnSearch);
    Connect(ID_SEARCHDIALOGSEARCHBUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnSearch);
    Connect(ID_SEARCHDIALOGSEARCHREPLACE,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&LF2DataChangerFrame::OnReplace);
    Connect(ID_SEARCHDIALOGREPLACEBUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnReplace);
    Connect(ID_SEARCHDIALOGREPLACEALLBUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&LF2DataChangerFrame::OnReplaceAll);
    Connect(ID_AUINOTEBOOK,wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE,(wxObjectEventFunction)&LF2DataChangerFrame::OnPageClose);
    Connect(ID_AUINOTEBOOK,wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED,(wxObjectEventFunction)&LF2DataChangerFrame::OnPageClosed);
    Connect(ID_AUINOTEBOOK,wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED,(wxObjectEventFunction)&LF2DataChangerFrame::OnPageChanged);
    Connect(ID_AUINOTEBOOK,wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP,(wxObjectEventFunction)&LF2DataChangerFrame::OnTabMiddleUp);
    Connect(ID_AUINOTEBOOK,wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK,(wxObjectEventFunction)&LF2DataChangerFrame::OnBgDClick);
    Connect(ID_AUITOOLBARSEARCHFIELD,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&LF2DataChangerFrame::OnSearch);
    Connect(ID_AUITOOLBARSEARCHFIELD,wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN,(wxObjectEventFunction)&LF2DataChangerFrame::OnSearch);
    Connect(ID_AUITOOLBARSEARCHREPLACE,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&LF2DataChangerFrame::OnReplace);
    Connect(ID_AUITOOLBARSEARCHREPLACE,wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN,(wxObjectEventFunction)&LF2DataChangerFrame::OnReplace);
    AuiManager->Connect(wxEVT_AUI_PANE_CLOSE,(wxObjectEventFunction)&LF2DataChangerFrame::OnPaneClose,0,this);
    Connect(ID_MENUFILENEWFILE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnNewFile);
    Connect(ID_MENUFILEOPEN,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnOpen);
    Connect(ID_MENUFILESAVE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnSave);
    Connect(ID_MENUFILESAVEAS,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnSaveAs);
    Connect(ID_MENUFILECLOSE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnCloseCurrentTab);
    Connect(ID_MENUFILEQUIT,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnQuit);
    Connect(ID_MENUEDITUNDO,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnUndo);
    Connect(ID_MENUEDITREDO,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnRedo);
    Connect(ID_MENUEDITCUT,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnCut);
    Connect(ID_MENUEDITCOPY,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnCopy);
    Connect(ID_MENUEDITPASTE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnPaste);
    Connect(ID_MENUEDITSEARCH,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnToolSearch);
    Connect(ID_MENUEDITREPLACE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnToolReplace);
    Connect(ID_MENUVIEWFILE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnShowFile);
    Connect(ID_MENUVIEWEDIT,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnShowEdit);
    Connect(ID_MENUVIEWSEARCH,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnShowSearch);
    Connect(ID_MENUHELPABOUT,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&LF2DataChangerFrame::OnAbout);
    Connect(wxID_ANY,wxEVT_CLOSE_WINDOW,(wxObjectEventFunction)&LF2DataChangerFrame::OnClose);


I really really hope that was automatically generated, otherwise o.0
[Image: doty7Xn.gif]

10 ʏᴇᴀʀs sɪɴᴄᴇ ɪʀᴄ ɢᴏᴏᴅ.ɪ ᴡᴀʟᴋ ᴛʜʀᴏᴜɢʜ ᴛʜᴇ ᴇᴍᴘᴛʏ sᴛʀᴇᴇᴛs ᴛʀʏɪɴɢ ᴛᴏ ᴛʜɪɴᴋ ᴏғ sᴏᴍᴇᴛʜɪɴɢ ᴇʟsᴇ ʙᴜᴛ ᴍʏ ᴘᴀᴛʜ ᴀʟᴡᴀʏs ʟᴇᴀᴅs ᴛᴏ ᴛʜᴇ ɪʀᴄ. ɪ sᴛᴀʀᴇ ᴀᴛ ᴛʜᴇ sᴄʀᴇᴇɴ ғᴏʀ ʜᴏᴜʀs ᴀɴᴅ ᴛʀʏ ᴛᴏ sᴜᴍᴍᴏɴ ᴛʜᴇ ɢᴏᴏᴅ ɪʀᴄ. ɪ ᴡᴀᴛᴄʜ ᴏᴛʜᴇʀ ɪʀᴄ ᴄʜᴀɴɴᴇʟs ʙᴜᴛ ɪᴛ ɪs ɴᴏ ɢᴏᴏᴅ. ɪ ᴘᴇsᴛᴇʀ ᴢᴏʀᴛ ᴀɴᴅ ᴛʀʏ ᴛᴏ ʀᴇsɪsᴛ ʜɪs sᴇxɪɴᴇss ʙᴜᴛ ɪᴛ ɪs ᴀʟʟ ᴍᴇᴀɴɪɴɢʟᴇss. ᴛʜᴇ ᴇɴᴅ ɪs ɴᴇᴀʀ.ɪ ᴛʜᴇɴ ᴜsᴜᴀʟʟʏ ʀᴇᴀᴅ sᴏᴍᴇ ᴏʟᴅ ɪʀᴄ ʟᴏɢs ᴀɴᴅ ᴄʀʏ ᴍʏsᴇʟғ ᴛᴏ sʟᴇᴇᴘ.


Reply
Thanks given by:
#9
Mingw for the persons those who dont have it : http://www.dll-files.com/dllindex/dll-fi...l?mingwm10
Silva requested you to build it statically for the DCer.
Reply
Thanks given by:
#10
(06-18-2012, 01:05 PM)Lord Silva Wrote:  Yay! Something written in C++ rather than C#!
Indeed.

(06-18-2012, 01:05 PM)Lord Silva Wrote:  This has become my new DCer of choice
Glad to hear.

(06-18-2012, 01:05 PM)Lord Silva Wrote:  I really really hope that was automatically generated, otherwise o.0
Don't worry. It was generated by wxSmith.

(06-18-2012, 01:45 PM)Men'Mine Wrote:  Mingw for the persons those who dont have it : http://www.dll-files.com/dllindex/dll-fi...l?mingwm10
Silva requested you to build it statically for the DCer.
I don't really know how to do so.

Edit: Small update.
Basically including a Linux-version, and "mingwm10.dll".
Feedback highly appreciated.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
Thanks given by:




Users browsing this thread: 1 Guest(s)