Jump to content

Notus

Member
  • Posts

    107
  • Joined

  • Last visited

Everything posted by Notus

  1. Quote: The map editor is a bit of a pain in its own ways, though. We are making a new "map editor" now. Please let us know when or to what you feel pain on "map editor". We may be able to ease part of them. And beginner designers, please let us know when and to what you feel difficulty on the original or 3D BoA Editor. We need wide spectrum of user's opinion to improve its user interface.
  2. Quote: How? And is there any way to turn MP3/WAV files into BoA sounds? I also would not recommend it. I'll write the process, but I want to let you know why it is not recommended. 0. Resource ID As Dahak said, the resource IDs from 0 to 174 are used on BoA application on both platform. And to use sounds, the resource ID should be within this range. That is, we should replace original sounds to install custom sound. For Macintosh, replacement is temporary because .cmg file can be used for replacement. But on Windows, custom sounds should be installed into the BoA application itself replacing the original sound as follows. The replacement is permanent otherwise you don't recover it. And you should distribute customized BoA application with scenario. 1. On Macintosh 1.1 For Mac scenario 1.1.1 Make Mac sound resource ('snd ') Convert sound file to 'snd ' resource using such as SoundApp SoundApp is an old freeware, most of link are lost. I found it http://www.mp3-mac.com/AppsDload/SoundApp.html It works on classic environment. For MP3 conversion, you may need QuickTime Pro is installed. Conversion is done using File > Convert... Select "System Sound" As 'snd ' resource is limitted to 16kBytes, it doesn't accept long sound file. 1.1.2 Attach 'snd ' resource to .cmg file Use ResEdit or other resource editor. 1.2 For Win scenario 1.2.1 Prepare .wav file You can also use SoundApp to convert MP3 to .wav Use "Windows WAVE" as the format. 1.2.2 insert .wav file to .exe file using resource editor No simple method on Macintosh to do this process. Use Windows machine. 2. On Windows 2.1 For Mac scenario 2.1.1 Make Mac sound resource ('snd ') 2.1.2 Attach 'snd ' resource to .cmg file There is no simple way to do this process on Windows, because of handling resource fork. Use Macintosh. 2.2 For Win scenario 2.2.1 Prepare .wav file To convert MP3 to WAV, you can find many application on internet. 2.2.2 insert .wav file to .exe file using resource editor Use resource editor such as "PE Resource Explorer" http://www.wilsonc.demon.co.uk/d7resourceexplorer.htm Open BoA application, "Blade of Avernum.exe", with resource editor. Open Sections - .rsrc - 100 folder You'll find folders numbered from 1 to 174. This is the original sound resource. The actual resource number has greater number by one than resource ID selected in the script. Open one of the sound folder you want to replace it. Select resource itself and execute "import user resource" from .wav file over it. ---- end of procedure ---- Technically, we can make a patch to support TRUE custom sound on both platform, analyzing disassembly list of the BoA application. But it is the same procedure to make an unprotect version of BoA. I can do it, but I don't want to do.
  3. I'm in too. As for CUSTOM sounds, they should be directly written to .exe file as resources on the current version on Windows. Assuming the code for sound resource on the editor was ripped from BoA application itself, it uses LoadResource(). This API can only retrieve resources in the .exe file. ( load_sounds() in sound.c(pp) ) Custom sound is implemented by almost the same method as custom graphics. To realize custom sound file like graphics, external sound files should be searched when a sound resource isn't found on .exe as he coded on load_pict() in Graphutl.c. That is, already the logic is established on graphics. Or use PlaySound() after checking existence of the custom sound file. So, it isn't hard to implement it to Windows. [EDIT] On Mac, it is far easy, only expand the allowed resource ID range for the custom sound. Anyway, currently known method is 'hacking', not the actual custom sounds, because it replaces built-in sounds.
  4. I see. 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.
  5. Quote: Finished wxGlade file; code is not generated. Doesn't wxGlade generate code on both setting file? wxTest000.wxg generates code properly on my side.
  6. Sent wxGlade setting file, wxTest000.wxg, to CVS Change "Output path" on "Properties - <app>" and try it.
  7. KernelKnowledge12, Quote: This is by no means complete. It's OK. We always make applications from the middle, neither top down nor bottom up. There are many criteria to modularize the application. In this case, our purpose of modularization is, - Split down current 3D editor code and insert them into wxWidget framework. - Isolate modules each other to remake them individually. I think we will need to reconsider the classification of modules once more in the course of development. And it will be a form as you suggested. But now, we need some work bench to test and makeup our objects. Let's practice. 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 6. Isolate the basic data objects from global.h and Library.cpp and add them 7. Isolate void load_campaign() (Bl A Fileio.cpp) and bind it to "Load" menu. Use fixed file path to avoid file load dialog. I'll isolate 2D/3D graphic system and connect them to the panel view. Tool palette Next is the tool palette function of current 3D editor. From Bl A Editor.cpp short overall_mode; // 0 - 9 - different errain painting modes // 10 - 29 - editing rectangle modes: (0,0) T/O 0 "", "" neutral state, editing terrain/spaces with pencil (1,0) T/O 1 "Paintbrush (large)", "" (2,0) T/O 2 "Paintbrush (small)", "" (3,0) T/O 3 "Spraycan (large)", "" (4,0) T/O 4 "Spraycan (small)", "" (5,0) T/O 20 "Set Height", "Select rectangle to set" (6,0) T/O 11 "Fill rectangle (hollow)", "Select upper left corner" (7,0) T/O 10 "Fill rectangle (solid)", "Select upper left corner" (0,1) T/O large/small 3D Realistic mode toggle (1,1) T/O floor - terrain - height toggle (2,1) T/O Automatic hill toggle (3,1) T/O 59 "Edit sign", "Select sign to edit" (4,1) T/O 21 "Create room rectangle", "Select upper left corner" (5,1) T/O 60 "Place 1st spawn point", "" (6,1) O 22 "Create town entrance", "Select upper left corner" (7,1) O 69 "Edit town entrance", "" (0,2) T/O 19 "Place bounding walls", "" (1,2) T/O 18 "Swap walls 1 <--> 2", "Select rectangle to set" (2,2) T/O Change terrain randomly (3,2) T 70 "Place Terrain Script", "Only in towns." (4,2) T/O 2D/3D toggle (5,2) T/O 16 "Create Special Encouter", "Select rectangle for encounter" (6,2) T/O 49 "Erase Special Encouter", "" (7,2) T/O 50 "Edit Special Encouter", "" (0,3) T 40 "Select/edit placed object", "Select object to edit" (1,3) T 41 "Delete an object", "Select object" (2,3) T 57 "Place a Waypoint", "" Nav point (3,3) T 58 "Delete Waypoint", "" Nav point (4,3) T 30 "Place north entrance", "Select entrance location" (5,3) T 31 "Place west entrance", "Select entrance location" (6,3) T 32 "Place south entrance", "Select entrance location" (7,3) T 33 "Place east entrance", "Select entrance location" (0,4) T 61 "Make Spot Blocked", "Select location" (1,4) T 62 "Place web", "Select location" (2,4) T 63 "Place crate", "Select location" (3,4) T 64 "Place barrel", "Select location" (4,4) T 65 "Place fire barrier", "Select location" (5,4) T 66 "Place force barrier", "Select location" (6,4) (7,4) T 67 "Clear space", "Select space to clear" (0,5) T 68-0 "Place small blood stain", "Select stain location" (1,5) T 68-1 "Place ave. blood stain", "Select stain location" (2,5) T 68-2 "Place large blood stain", "Select stain location" (3,5) T 68-3 "Place small slime pool", "Select slime location" (4,5) T 68-4 "Place large slime pool", "Select slime location" (5,5) T 68-5 "Place dried blood", "Select dried blood location" (6,5) T 68-6 "Place bones", "Select bones location" (7,5) T 68-7 "Place rocks", "Select rocks location"
  8. Don't mind. We'll make more user-friednly interface, as you can realize it at a glance.
  9. Another palette design. I showed Mac version, Windows version will have also almost the same appearance. Palette design plan 2 Four independent palettes for Floor, Terrain, Item and Creature. And another "My Palette", customizable palette. The appearance of Four independent palettes is as follows. This example shows "Item" palette, other palettes are similar to this palette. Only icon size is different. "My Palette" is customizable one. It can contain different type icons in one panel. To add an icon, drag the icon from each independent palette to this panel. The explanation of palette function. Also you can import/export "My Collection", a setting of one panel, as a file to exchange it with other users. [Edit] Added "My Collection" feature.
  10. Quote: KernelKnowledge12 wrote Perhaps we should port the current code to wxWidgets first. We should absolutely port the current code to wxWidgets, so I proposed to modularize the current code. But as for the user interface design, it isn't necessary to port the code right now. What we are doing now is a test to examine how easily user can realize the function we'll implement, from a picture of user interface. I used "Interface Builder" on Xcode to draw the first plan, but it doesn't mean we use it for the actual code. I used "Interface Builder" as a picture drawing application. If I drew it on Windows, I would use Visual BASIC as a picture drawer. I took care to use as many parts that wxWidgets has similar one as I can. Only exception is the icon display, Mac uses PICT and Win uses BMP. Quote: KernelKnowledge12 wrote I found two more IDE type programs that might help us. wxhatch FireGUI OK, I'll try.
  11. The origianl BoA Editor (Mac v1.1, Win 1.0.3) has a bug on "Import town" function. This bug was fixed on 3D BoA Editor on both platform.
  12. Quote: Kelandon wrote I happen to have a largish one, so it works for me to have a lot on the screen at once. We plan to support larger resizable edit window for towns/outdoor. And multiple towns/outdoor edit windows are opened at the same time. You may need a second display.
  13. Kelandon Nice Top page. Isn't it better to add Louvre to the link part? Quote: And what makes an item "registered"? The lower part of the palette works to "register/unregister" items. When "register" button is pushed, selected item is registered to the "registered list". Select one line of "registered list" and push "delete" button, then the item is removed form "registered list". Umm.. this interface seems not to be intuitive. I'll make another plan.
  14. Isaac, boost package is distributed on FINK, but over CVS. http://fink.sourceforge.net/pdb/package.php/boost1.32 "xml_grammar" compilation problem may be irrelevant with phyton. Kelandon, Quote: Will we be able to have more than one palette open at once (terrains in one palette, a second palette with floors selected, a third right underneath them that has items)? In this design, only one palette is displayed at once and the contents is switched by the top tab, as I felt screen is filled with palettes. But if it is better to display all palettes at once, I'll try to reduce the palette window size. "registered" is added to reduce items displayed on the icon display area. Ordinarily, entire items are displayed on this area, but when "registered only" is checked, only selected items that are registered on the registered item list are displayed on it.
  15. Sorry for confused term. Module is like "Edit screen drawer (2D/3D)" "Menu command handler", "Outdoor resize command" "Scenario loader/saver" Next picture is prototype layout for Floor/Terrain/Item Creature Palette (Mac version). Drawn using "Interface Builder" on Xcode, not wxGlade.
  16. Quote: Does this mean we're now reorganizing the code? Partially. Only module name (function) and its interface. Determine module function - module name, and its interface. If you list up module name, I'll list up their interface from current editor code. When the list is accomplished, discuss on interface. wxGlade is not bad, but not so good. It worked both on Mac and Win, but I cannot figure out how to put other controls on notebook view.
  17. initialization of global (static) objects More precisely, the initialization fails on next condition. a) The given class derives from a base class. The base class has "virtual" function. If we cannot use "virtual" function, there is no meaning to use inheritance in these basic data objects. Not only the problem on initialization, next behavior also causes problems. In this condition, sizeof( 'given class' ) increases by 4 bytes, the pointer to vtable, in most compiler. Xcode, VC++, DevC++ are not exception. Moreover, &'object' points this hidden pointer, not the first member of the class. This behavior affects the file loader/saver directly because it uses sizeof operator as the data size, and address of the object as buffer for read/write. It may be solved by forcing compiler to use static binding in all cases. But this setting may be incompatible to application framework. Modularization One of the reason we feel the editor code is cluttered is that each module is not established well. Especially, global variables have double meaning, data holding object and interface of each module. The global variables I counted up before as the graphic system buffer, are actually a part of the "interface" of the graphic system. 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.
  18. Clip file Even the clip file should include custom graphics, custom terrain script, custom item script, etc. Thumbnail and creator's name, comment also are desirable. Graphics need to be converted according to the platform. To solve these subjects, fair amount of effort will be needed, but it will be fruitful. Clip file implementation will provide the basis of unification on graphics editor and script editor as you suggested. It's the final goal. But now, we should concentrate on graphics editor. Go step by step. Basic data classes Quote: Is this really neccessary with the use of inheritance? Can't we use inheritance without changing the global variables to pointers, or am I missing something? As these basic data have a common character that is loaded from and saved to .bas file, we will probably make a superclass on these classes to handle streaming on them. If we make a superclass, these data objects cannot be declared as global (static) variables because of inheritance. They should be generated by new operator dynamically. This means we must access them through pointers. 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. Graphic system buffer Graphic system buffer holds all of basic data to draw current view (window). If a town is the top window, it holds such as, scenario.start_in_what_town town.wall_1_sheet town.wall_2_sheet town.ter_scripts[] town.start_locs[] ... t_d.floor[][] t_d.terrain[][] t_d.height[][] t_d.lighting[][] maybe 40kbytes or so. The contents of graphic system buffer should be swapped when another town/outdoor window takes the top view, or on update event to redraw another town/outdoor. It takes only several msec to swap the contents of graphic system buffer. GUI builder Quote: I was thinking about wxDev-Cpp, and I'm not too sure we should use it, since: I found wxglade as a candidate but not examined so much yet.
  19. Social role of Copy/Paste As the next step of Copy/Paste, I considered "clip file". "Clip file" is a file data whose content is selected on the Copy procedure. After copying a part of the edit screen, save the copied data to "clip file" instead of pasting it. This "clip file" is used to exchange "landscape parts". These small landscape parts are uploaded to a sever like the louvre, and everyone can use it by the courtesy of the original creator. This story will be the positive reason to support Copy/Paste. Floating paste Floating paste is realized on the graphic system buffer. a) We need a buffer between the graphic system and the actual objects to maintain the scroll (redraw) speed. During the development of Win 3D editor, I tried to convert global (static) definition of the basic data to pointer expression of the objects, such as - original outdoor_record_type current_terrain; current_terrain.height[] - pointer expression outdoor_record_type* current_terrain; current_terrain->height[] This conversion reduced scroll (redraw) speed to half. The reason is as follows. - Compiler generates indirect access to the memory on the pointer expression, and direct access on the original expression. Indirect access is much slower than direct access. - 300-400 lines of these expression exists on "Graphics.cpp". Moreover, most of them are in loop. To maintain the scroll speed, we should keep direct access to the data memory in the graphic system. But static expression of the data extremely limits the object function, as it doesn't allow even inheritance. Thus we need a data buffer between data objects and the graphic system. "Floating paste" is a visual effect. The actual objects is not changed until the position is determined by user. Thus it is proper to implement using graphic system buffer. No Data Padding Previously, I promised to investigate on the existence of padding on recorded data (.bas file). Next is the result. a) Manual calculation Calculate bytes size of each data structure (class) manually using Excel, assuming no padding between members of structure. The result was as follows. scenario_data_type 7480 outdoor_record_type 12892 town_record_type 16346 big_tr_type 20480 ave_tr_type 11520 tiny_tr_type 5120 sizeof operator The figures returned by sizeof operator to above structures perfectly correspond to above figures on Xcode, MSVC++.NET2003 and DevC++ c) Actual file size The .bas file size made by the original BoA Editor (Win v1.0.3, Mac v1.1) is 48238 bytes, for one outdoor sector and one average size town. This figure matches next sum of above sizes. scenario_data_type + outdoor_record_type + town_record_type + ave_tr_type From these facts, I conclude there is no padding within the recorded data. And we can safely use sizeof operator on these structures as the recorded data size on these compilers (IDE). But I don't recommend to use sizeof operator. Use above constant instead. Constant is compiler independent. [EDIT] My Email is recovered. So I could send reply via Email, but the discussion on Copy/Paste should be open. And the information on data padding may be useful for other developers.
  20. Quote: Will this be added to the current 3D Editor (Dev-C++ Project)? Yes, for this purpose we prepared a test bench. I'll write a code for mouse tracker to draw selection rectangle on 2D and 3D. Not only the selection phase, the paste phase also needs some consideration. On the paste phase, the pasted object is appeared in "floating" state on the screen until the position is determined. If the height information is included in the selected object, we should implement an user interface to adjust height too. Umm, if we can manage to realize this function, it'll be the most frequently used tool on rapid scene making and scene retouch. Copy/Paste function may bring another copyright problem, but the community will reach to some consensus.
  21. Quote: There is a version of the 3d editor for Windows now. Now both 3D Editor, Mac and Win, are supported on Project: BoA Editor Remake on SourceForge.net Current version 3D BoA Editor for MacOSX v1.0.2b5 February 14, 2005 3D BoA Editor for Windows Beta test release3 February 13, 2005 Both 3D editor are updated recently. Check out now!! (Advertise mode) [EDIT] The Windows version is implemented as equivalent to Mac version as possible. The major difference is next key binding. Windows keyboard doesn't have option key. Realistic mode toggle Mac Option-TAB Win Control-TAB View centering Mac Option-click Win Right mouse button
  22. Thanks, I got a hard disk and will repair my Mac this evening. Maybe I can use E-mail tomorrow. I received your E-mail. Mail log was on the data partition, and was salvaged successfully. Even if I didn't, mail server must hold it.
  23. KernelKnowledge12, Isaac Hard disk crashed on my Mac. Salvaged data partition but System partition is totally damaged. I must get another Hard disk. I cannot send/receive E-mail for a few days. Sorry for your inconvenience.
  24. Dahak, wz. arsenic This bug was reproduced on my side. Both outdoor and town. I'll look into this. Quote: I can't create any rectangles at all. All of the things that should make a rectangle (special encounter, room description, solid and hollow terrain) don't do anything. I click the button, then select the two endpoints of the rectangle, but then nothing happens. This information is very helpful, because these procedures use a common routine. It should be the culprit. Catch it. "working_rect" is not declared as "static" on EdFcns.cpp: handle_ter_spot_press() Now testing further. Preparing release This bug was fixed but the "Readme.pdf" should be revised as Amazadh Kristeopolous pointed out. Wait a little more. Sorry for my laziness. Sent it to SourceForge Mac version was updated to "v1.0.2b5" Update is posted to Project: BoA Editor Remake on SourceForge.net You can check the version of your application by a) Select the application icon on Finder Apple (command)-I
  25. Thanks for bug reports Quote: 1) Without a scenario loaded, click Scenario menu, all items are greyed out -- except Change Outdoor Size. 2) On the cretae new scenario dialog box, I can hear two clicks when clicking on Start with surface terrain. Registered as bugs 0006 Disabling 'Change Outdoor Size' Menu 0007 Dialog box: Radio button click sound Quote: 3) In realistic mode, I have noticed small black triangles, pointed down, between the west and north points on the graphics screen. The triangles when realistic mode is turned off. That black triangle indicates "Invisible area". As the center square on the editor screen is set to a little lower (SE) side, "Invisible area" caused by distance is visible on the upper (NW) side. You can see the effect of "Invisible area" better on the published scenario data, which has walls or trees. Okay, I'll start to fix them. Wait a several hours. Finished. Now preparing release. Sent to SourceForge. [EDIT] Forgot to explain the scroll speed limit. The scroll speed is limited to 10 square movement per second, on normal scroll mode in all directions. If the scroll speed is slower than this limit on your machine, this limitation has no effect.
×
×
  • Create New...