KernelKnowledge12
Member-
Posts
264 -
Joined
-
Last visited
Never
Content Type
Profiles
Forums
Blogs
Everything posted by KernelKnowledge12
-
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
The data that fills the scen_data object in the Editor is held in the scripts "corescendata.txt" and "corescendata2.txt". My parser parses these scripts and loads the data, much more efficiently than the one in the old editor. It also must load a specific scenario's own scenario data script before editing the towns, outdoor sects, etc. EDIT: If you want to know what a parser is in general, then it is a utility that reads scripts, and checks them. Its just programming lingo for script checker (Alint is a parser). EDIT: Actually, a parser can read/check any type of grammar. They're usually made for scripting languages/programming languages. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Sorry about the double post, but the topic's pretty old, and I wanted those involved to notice the thread is still alive. The new parser is loaded onto the CVS, and the functions that are meant to parse are changed to use it. It is not yet commented to any significant degree. -
Will he be using a scripting engine for A4?
-
Quote: Originally written by Solomon Strokes: Would it be possible to allow for CUSTOM sounds? Ya know, like .wav files taking their own sound slots? (I really want to make music as town incidental noises!) From what I understand of the game's engine, it is possible, but would mean a change in the engine, specifically the scripting engine. JV most likely would not do this. At least not right away. BoA is the first game in the avernum series that makes use of a scripting engine. Since JV is planning to create Avernum 4, he will most likely use this scripting engine to make it. He will also (as he did with every other game) improve the engine. If he allows for custom sounds, I'd think he'd do it here, and then I guess with enough support from the community, he might apply those changes to BoA.
-
Me too.
-
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Notus: Anyway, we don't use the code generated by wxGlade as it is. I think it is a "customizable example maker". After we know how to code, editing code on the text editor is easier than setting parameters on wxGlade GUI. For example, we can add menu items faster on a text editor. We should still use the generated code as a template for our own code, it should be pretty organized. Coding using wxWidgets is very, very, very simple. Because there was no real IDE for so long, the makers of wxWidgets created code that did most of the work itself. For example, you create a wxFrame by using the new operator, but it deletes itself upon its closing or the application quitting. EDIT: Created a parser that does scenario data script parsing using Boost.Spirit. It compiles, but is untested. If it works, it will drastically speed up development. It was loaded into the CVS repository under the file names: "avs_parser.hpp" and "avs_parser.cpp". EDIT: Forgot about a few undefined functions in the parser. I'll finish those now. EDIT: Hmmm, its going to take more time than I thought. I had to put = operators for that game_data.hpp classes and put some other stuff into avs_parser.hpp. Hopefully this was all the extraneous stuff I have to code. EDIT: Finished the parser. Its still inefficient, but several times more efficient and much cleaner than the original. I'll test it now, and when it works completely, I'll put more comments in. EDIT: Nope, doesn't work, but I know why. If I can't fix it soon, I'll load the original script parser. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
I meant just that I didn't put the generated code from my .wxg file onto the CVS server. Thought it should wait until the layout is finished. EDIT: All the classes (excluding those having to do with scripting) are on the CVS server. The scripting classes should be done next. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Done putting the structures in global.h into new files. Will load them onto the CVS a little later. EDIT: Quote: Sent wxGlade setting file, wxTest000.wxg, to CVS Ummm, I already made one, and its basically the same as yours (no status bar). It has all the menu items from the old editor, though. -
Article - Karma, Dharma and Somesuch
KernelKnowledge12 replied to Donald Hebb's topic in Blades of Avernum
Oh well. Bad programming makes the world go 'round . -
Article - Karma, Dharma and Somesuch
KernelKnowledge12 replied to Donald Hebb's topic in Blades of Avernum
Hmmm, I should really start reading a whole topic before I reply. I believe I misinterpreted what you were pointing out. If your talking about BoA's usage of the term Stuff Done Flag, and what they are actually used as, then you're right. Although its been years since I've played BoE, I believe this program was truer to the flag term, but in migrating to the use of Avernum Script, the SDFs turned into an array of global variables. -
Article - Karma, Dharma and Somesuch
KernelKnowledge12 replied to Donald Hebb's topic in Blades of Avernum
Quote: Originally written by silver harloe: but a "flag" is a bit. 0 or 1. Only in computer engineering. In computer programming, "flag" means any variable that relates to a boolean value (although most programmers extend the meaning of the variable). This variable may be a bit, or even a 64 bit integer (though this would be stupid). -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Notus: 1. Using wxGlade, make an application with a wxFrame 2. Add menubar to wxFrame (Widget tab - "Has MenuBar" on wxFrame dialog). 3. Add next four menu item to "File" menu: "Load", "Town", "Outdoor", "Exit" 4. Add a panel to sizer slot 5. Generate C++ code I'll do this and load it into a CVS repository of its own (named wxBoAEditor). If I have more time, I'll start working on 6. Quote: Originally written by Kelandon: If you can, incorporate the changes from Khoth's BetterEditor. They're small and simple but useful. This shouldn't be too hard, but it will be a while. EDIT: Put a preliminary wxGlade File (app layout.wxg) in the Repository. Has the main frame and menu items. EDIT: Finished wxGlade file; code is not generated. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
I've been thinking for a little while, and I have come up with an admittedly crude design for the modularization of this project. Proposed Modularization: kernel </font><ul type="square"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> structures </font><ul type="square"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> core game data .bas file data </font></li> [*]algorithms [*]scripting(*) <font size="2" face="Verdana, Arial, Helvetica, sans-serif">avernum script scripting </font><ul type="square"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> parser debugger </font></li> [*]editor scripting <font size="2" face="Verdana, Arial, Helvetica, sans-serif">virtual machine parser/compiler primitives </font></li></ul><font size="2" face="Verdana, Arial, Helvetica, sans-serif"></font></li></ul><font size="2" face="Verdana, Arial, Helvetica, sans-serif"></font></li> [*]gui <font size="2" face="Verdana, Arial, Helvetica, sans-serif">main menu </font><ul type="square"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> file, view, etc. </font></li> [*]views <font size="2" face="Verdana, Arial, Helvetica, sans-serif">terrain view core game data view dialog based views </font><ul type="square"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> town data view, wandering view etc. </font></li></ul><font size="2" face="Verdana, Arial, Helvetica, sans-serif"></font></li> [*]toolbars [*]package manager (*)</ul><font size="2" face="Verdana, Arial, Helvetica, sans-serif"></font></li> [*]database communications (*)</ul><font size="2" face="Verdana, Arial, Helvetica, sans-serif">This is by no means complete. I await any suggestions/thoughts on this. (*) Items marked with this need much more consideration. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Dastal: If I may suggest something: Make the editor a fairly basic framework. Perhaps the "base editory" would be even less functional then the current BoA Editor. Then, each imporvement could be worked in as a "module," "plugin" or "expansion." This is the ultimate goal of the project. We are not starting by doing this, because it could lead to complications that will delay a release. Notus convinced me of this, and he will be able to better explain this approach. As for plugins, we will by the end try to support a scripting engine that parallels straight C, since Avernum Script does too. For now, however, our goal is to help the BoA editors create scenarios in a simpler and easier way. Once this is achieved to an acceptable level, we'll try to significantly expand our editor. Thank you for all your suggestions. Also, from reading what you wrote, it seems as though you have some programming experience. If your willing to help on a programming level, please say so. Also: Your very last suggestion may be impossible, but we should be able to provide a similar feature by the end. EDIT: Quote: Originally written by Dahak: One tiny little thing to be added that would be most useful. The default editor has a "Make all items NOT property" option, but no "Make all items property" option. This under the town menu. This could be done fairly quickly, but there seems to be something wrong with SourceForge's CVS server. It might be a while before this gets fixed. EDIT: About five minutes after editing this post the first time, the CVS server started working. Second time something like this has happenend . -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Notus - I figured out what we were doing wrong with wxGlade. All controls must go on a sizer control. The notebook control went on the sizer that was automatically created by the wxFrame control, but since the notebook's pane did not have one, you couldn't put any controls on. To put controls on the notebook view, first add a sizer (there are two kinds of these.) -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Notus: Umm.. this interface seems not to be intuitive. I'll make another plan. Perhaps we should port the current code to wxWidgets first. Actually, I don't think we have to do this in order to use controls made through wxWidgets, but it would be cleaner. As for the palette, I hope the code generators I found will help. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Sure, but it won't happen for some time. The new editor is still being discussed. Concerning wxGlade: I found two more IDE type programs that might help us. wxhatch FireGUI -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Awesome, but your links are messed up. The first goes to the file releases page and the second goes to the webpage. As of now I think that's all we need, but I believe it is required to put Sourceforge's logo somewhere on the site. It should indicate that the site is hosted by SourceForge, and should link to SourceForge.net. Any ideas for content are welcome. EDIT: For clarity, I meant the links on your post. Sorry for any confusion. EDIT: Nevermind about the links. EDIT: Quote: but I cannot figure out how to put other controls on notebook view. Me neither. We'll probably have to do that part by hand, if we need it. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Umm, I think that was it. Anyway you can always add to it later. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Kelandon: I don't know if that adds to the technical difficulty of programming, though. It shouldn't. This type of functionality is handled by the framework's code. We shouldn't have to do any real programming. Quote: EDIT: Also, for the life of me, I can't figure out how to send something to Sourceforge that actually shows up as the home page for the project. Can someone tell me what to enter in my "Connect to" field? This might help. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Isaac: I've been trying to install the Boost libraries. You should ask the people at Boost through the Boost-Users mailing list. They should be able to solve your problem. Quote: Module is like "Edit screen drawer (2D/3D)" "Menu command handler", "Outdoor resize command" "Scenario loader/saver" Ahh. This makes more sense. Here are a few I can think of: * New Town * New Scenario (this might be part of the loader/saver) * Tool palette * Import Town/Outdoor -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
When you say module, do you mean function? If so, we can use global.h to create the list on SourceForge (forums), so we all (developers) can go in and edit it. The list would be somewhat as follows: Function Name: var name var name . . . Another function: . . . If I misinterpreted, please elaborate. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Isaac: EDIT: KernelKnowledge, could you remove that really long comment from your code, or break it into multiple lines? It's stretching the page. Oops, . . . sorry bout that. Quote: I propose to determine the interface of each module according to current editor's code. Of course, no need to copy current code as it is, where we can apply improvement. Does this mean we're now reorganizing the code? EDIT: Just remembered something. wxWidgets used to have its app class be a global when the IMPLEMENT_APP(...) macro is invoked. They changed this for the exact reason outlined by Notus. While the error does not usually occur, its much safer and cleaner to just do it another way. -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Isaac: What do you mean, "virtual inheritance"? Like 'class derived : virtual base'? If so, I don't know a lot about that, or what difference it makes. If you mean virtual functions, those shouldn't be a problem. Here's an example of virtual inheritance (although you probably have the idea already): Quote: It would probably be useful to look at something like that, since I don't even know quite what is legal to do with templates in C++, and learning just that wouldn't be all that useful by itself either. Template metaprogramming is amazingly simple to write. (Reading it however will warp your brain, as it did mine .) The main thing you'll want to keep in mind is what Koenig calls the Fundamental Theorem of Software Engineering: "We can solve any problem by introducing an extra level of indirection." - Butler Lampson This is applicable in all programming, but especially so in template metaprogramming, since the majority of the latter is run at compile-time. Boost has a quick start tutorial which should be pretty self-explanatory, and if you have any questions I'd be more than willing to answer (assuming I know the answer). EDIT: Was messing with some code, and I ran into an error I cannot explain in my class_base class. It worked fine, and then I had to reinstall my compiler (keep in mind my code was never changed). Now I get an error equivalent to the following: Code: class A {public:void do_thing(){};};class B : protected A {public:using A::do_thing;};int main(...) {B b;b.do_thing() // --> error, function is not available in this context. Because B derives from A using protected, // do_thing is protected, but since there is a using A::do_thing in a public spot, it should be (and was) considered public} Something happened to my compiler (Dev-C++) when I reinstalled it that causes this annoying, incorrect and limiting error. Does anyone know how I could remedy this problem? -
BoA Editor Remake
KernelKnowledge12 replied to KernelKnowledge12's topic in Blades of Avernum Editor
Quote: Originally written by Isaac: Really? I thought whatever you're talking about was handled fine, and the main problem with static variables was the order they get initialized in relation to each other. Sure, statically declared variables can't have their type determined polymorphically, but so what? You don't want to determine their type at runtime do you? Polymorphism != inheritance. It is true that polymorphism is not inheritance, but polymorphism is needed in virtual inheritance, which is what we are trying to implement. Quote: Originally written by Notus: The initialization of static variables occurs on early phase of loading of an execute file. But in that phase, inheritance chain and RTTI are not established yet. Thus a static object that has inheritance aren't initialized properly. Is this something that can be controlled by the compiler? Just had a thought on globals. We could create a struct such as game_struct, which would have as data members all globals, and all global functions as member functions (everything would be public). The game_struct would be declared in the main(...) function, and all code in the main function would call functions through this object. Doing this in the current code would be a waste of time, but for future reference would this at all work, or would the invisible this pointer that is passed to the internal functions of the struct slow things down? Quote: Also, if the STL is amazing, then boost::mpl is at least doubly amazing. What's even more amazing is that the MPL is only a very small part of what can be done with templates. Read the book "C++ Template Metaprogramming" by David Abrahams and Aleksey Gurtovoy (I am currently reading this). Note: If that last part is considered advertising, I apologize.
