Forum Replies Created
-
AuthorPosts
-
I was once in a physics class in school when the teacher, smiling wearily, held up one pupil’s homework for everyone to laugh at. We were supposed to design some sort of parallel light circuit and the guy had come up with the most insanely complicated network of wires and switches densely packed across a page of his workbook like it must have taken him hours. He seemed to take it in pretty good humour when the teacher basically encouraged everyone to laugh at him, poor guy.
I remember that day a lot, and trying to come up with a nice way to manage object references is giving me flashbacks. I am sure I’m missing an obvious solution using a structure I’m not familiar with and it’s creating head-spinning confusion.
I’ll get there. For what it’s worth I am much further on in my thinking than I was yesterday. Just not there yet. Not even a snails progress of visible difference
Thanks! And fair points, I tweaked some things based on them.
Making the tree branches dotted in a nice way is tricky as they are rectangles with images drawn from a texture atlas (in fact all of the gui comes from one texture) but I agree they were too severe. I lightened them and may do something else to make them fainter, or remove them I’m not sure.
I don’t want to go too pale with the selection colour, it is also the colour for selected text, which up til now has been white within the selected area and still needs to contrast. I could of course just make the selected text black as well.
Anyway, it’s super easy to get distracted making these small adjustments when I’ve got horrible confusing things to write
onward onward
Attachments:
Not much of an update but things are continuing. There have always been a few parts of this project I knew I’d have difficulty thinking through, from inexperience or daffyness. I’m optimistic as quite a few of those parts are behind me, but I’m at the penultimate big problem just now.
I need my objects to track references from outside objects for re-connection when being un-deleted. I think I need that anyway. At any rate it’s how I’m doing it and now I’m doubting it all lol. I’ve tried pretty hard to think of ways to avoid weighing my classes down with further baggage that is only required for editing purposes, but it’s not too bad. The reference-knowledge will come in useful for the final big thing I have to worry about, which is maintaining relative internal references when copying groups of objects.
I’m pressing on and making the reference tracking thing just now. There aren’t that many interlinks so it’s not too much work, it’s just not a thing I’m familiar with thinking about.
I also have a niggling feeling that I should be using operator overloading in a Reference class to really streamline this whole thing, but I’m on a knife-edge of risking the effort it would take to find out if I’m right when I’m pretty sure the more clunky way I’m doing it will work… clunky way first.
In the meantime, a couple of tiny other things are appearing, I can’t resist showing microscopic advances. Here shows that you can edit object names (also undoable… I know that should be totally obvious, but I’m still pleased with it hahaha) and that the transformation tree window has appeared. Though it’s very dull. Also gone are control buttons at the bottom of windows, they seem pointless with context menus. This may be against the best practice, I don’t know, but I prefer it.
Attachments:
Another day, another half dozen tiny things that are almost invisible to the naked eye
The most basic of editing facilities is now present, and I can set the components of a vector. Still not thrilling, but shows that another class of action is doable, undoable and redoable.
In the process I realised that changing a name is different to changing values, which made me think about how to change names conveniently, which hurried my implementation of right-clicks in my gui. When I was developing it in Monkey, I seriously wanted it to be something I’d use on Android devices, so I quite rigidly stuck to only sensing one mouse button. For a while I’ve intended to change it, and today’s stuff moved it along. I’m not exactly delighted with the way I’ve done it, but it’ll do for now. Context menus are here, hooray!
It’s slightly fun to see some numbers being set and remembered. It’ll be much more fun when I can actually see my objects in the backdrop, but that’s not too far away. Most of the object manipulation will be done on the canvas, but I want to get these essential and boring parts out of the way first.
For the time being, context menus and the most basic of basic editing:
Attachments:
Daily updates may be dull for everyone but me, but I’ll persist as it slightly motivates me
I made a tiny difference to my icons: redrew the folder and simply disabled one of the GIMP layers that was giving them their frame. A tiny thing really, and they need more done to them than that, but it does look better I think.
Much more important are those two tiny buttons I’ve popped up at the top right (edit:top left, been a long day…), which control the undo history for which I’ve been laying groundwork for days n days :). It’s been a hassle, not something I’ve coded to such a degree before, and is still the framework of the system. But I’m absolutely chuffed that it works as far as it does. Not that you can do anything other than move objects around the scene tree at the moment, but it tracks it all and lets you undo and redo through it. Next will be the most basic class editing window to test the next part of the history stuff. Setting vectors.
More quite boring shots to show the snail like progress… they give me a little thrill
Pretty good suggestion, really
I’m using a png with transparency already (all the text is drawn from such a texture), the look of the object icons was actually a deliberate (albeit daft) choice! And I agree that shrunk so small the folder is really a blob. I’ll re-think the look of those things, they have to look ok very very tiny.
Not exactly useful info here as I’m running windows 7 and it worked just fine, connecting and reconnecting joypads and joysticks. Even an old joystick that the machine installed drivers for appeared ok. Though it didn’t see the little hat thing at the top of the stick, not sure how unusual that is.
A tiny thing is that the Format function seems to think numbers like 0.05 are 0.5, but it’s not exactly relevant.
Following the instructions on the GutHub page worked nicely to make the develop version, which isn’t something I’ve done before and feels novel. But that’s not relevant to this either sorry.
Been sidetracked by long-anticipated improvements to my treeview gadget, which have been semi-successful. It works, and slightly better than previously. If I find it getting too slow I might have to go back to it.
Been very frustrating to be held up going over old (and also basically functional) code, though. Glad to be passed it and microscopically further on with the thing as a whole. I needed to make sure the treeview was properly sturdy as plopping objects in and moving them around in a valid way was important.
Evidence of creeping progress below. Again not exactly exciting for everyone, but heyho
And yes, I have heaps of icons to define. They’re the tip of the iceberg, really.
Attachments:
Thanks! When I think about it, I’ve probably written half a dozen GUIs of varying usefulness over the years, so “bare minimum” isn’t too little.
I knew I’d need a full-function string field, drag n droppable treeviews, tables, general scroll-panels and an event system (besides obvious windows and various buttons) to make it at least usable so it’s not too bad. It’s also pretty versatile in terms of skinning, though perhaps not intuitively so.
Nothing is missing to make my editor, but you couldn’t make a document editor out of it at the moment.
Also it’s a bit inefficient to draw at the moment, I’ve just realised. But it still seems very very fast, even with screens full of text… Strange. I have a pretty sound plan to make it properly lean to draw if it becomes a problem.
Though the screenshots are hardly thrilling for now, I’m pleased with the quantity of groundwork I’ve laid. Extending the objects I’ve been using for a while to make them “editor ready” has been a lot of work, but I’m sure I’ve got most of the functionality there. My hope now is that progress will be relatively gentle. But that’s a laugh
I’ve had a go at switching to MSVC and the speed increase seems massive, but I haven’t quite got it working.
Rebuilding the modules seemed to take a fraction of the time, but I feel like there may be many variables affecting those times?
By default the only readily available version installed an SDK number that monkey didn’t want I think? (sorry for ignorance) But it was quite easy to get MSVS2017 to install the right one (10.0.15063.0), and now much of my code seems to compile… except when I include the reflection module! Now it so happens I might be changing tack when it comes to using reflection for my present purpose anyway, but it’s still something I’d like to use in the future.
I’m not sure if I’ve installed MSVC incorrectly or what, but this is the output I get when I compile my code with the relflection module:
Monkey12345678910111213141516171819202122Parsing...Semanting...Translating...Compiling...main_main.cppLinking C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.products/Windows/Main.exe...Microsoft (R) Incremental Linker Version 14.00.24225.1Copyright (C) Microsoft Corporation. All rights reserved."C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2reflection_2reflection.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2mojo_2mojo.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2std_2std.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2stb_5vorbis_2stb_5vorbis.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2stb_5image_5write_2stb_5image_5write.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2stb_5image_2stb_5image.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2miniz_2miniz.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2sdl2_2sdl2.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2jni_2jni.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2openal_2openal.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2gles20_2gles20.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2freetype_2freetype.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2emscripten_2emscripten.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2chipmunk_2chipmunk.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2libc_2libc.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2monkey_2monkey.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0main.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02MOeditor.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02MOdef.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02GUI_02GUI.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02GUI_02GUIskins.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02GUI_02GUIclasses.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02GUI_02GUIglobals.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02ManagedObjects_02managedObjects.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02ManagedObjects_02managedColliders.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02ManagedObjects_02managedGraphics.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02ManagedObjects_02managedMaths.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02general.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0code_02mojoExtra.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0std_0collections_02container.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0std_0collections_02list.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0std_0collections_02stack.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0std_0collections_02deque.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0std_0collections_02map.cpp.obj" "C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.buildv1.1.08/windows_debug_msvc/build/main_0monkey_0math.cpp.obj" "C:/Monkey2-v1.1.08/modules/reflection/reflection.buildv1.1.08/windows_debug_msvc/reflection.lib" "C:/Monkey2-v1.1.08/modules/mojo/mojo.buildv1.1.08/windows_debug_msvc/mojo.lib" "C:/Monkey2-v1.1.08/modules/std/std.buildv1.1.08/windows_debug_msvc/std.lib" "C:/Monkey2-v1.1.08/modules/stb-vorbis/stb-vorbis.buildv1.1.08/windows_debug_msvc/stb-vorbis.lib" "C:/Monkey2-v1.1.08/modules/stb-image-write/stb-image-write.buildv1.1.08/windows_debug_msvc/stb-image-write.lib" "C:/Monkey2-v1.1.08/modules/stb-image/stb-image.buildv1.1.08/windows_debug_msvc/stb-image.lib" "C:/Monkey2-v1.1.08/modules/miniz/miniz.buildv1.1.08/windows_debug_msvc/miniz.lib" "C:/Monkey2-v1.1.08/modules/sdl2/sdl2.buildv1.1.08/windows_debug_msvc/sdl2.lib" "C:/Monkey2-v1.1.08/modules/jni/jni.buildv1.1.08/windows_debug_msvc/jni.lib" "C:/Monkey2-v1.1.08/modules/openal/openal.buildv1.1.08/windows_debug_msvc/openal.lib" "C:/Monkey2-v1.1.08/modules/gles20/gles20.buildv1.1.08/windows_debug_msvc/gles20.lib" "C:/Monkey2-v1.1.08/modules/freetype/freetype.buildv1.1.08/windows_debug_msvc/freetype.lib" "C:/Monkey2-v1.1.08/modules/emscripten/emscripten.buildv1.1.08/windows_debug_msvc/emscripten.lib" "C:/Monkey2-v1.1.08/modules/chipmunk/chipmunk.buildv1.1.08/windows_debug_msvc/chipmunk.lib" "C:/Monkey2-v1.1.08/modules/libc/libc.buildv1.1.08/windows_debug_msvc/libc.lib" "C:/Monkey2-v1.1.08/modules/monkey/monkey.buildv1.1.08/windows_debug_msvc/monkey.lib" "C:/Monkey2-v1.1.08/modules/openal/openal-soft/lib/OpenAL32.lib" "C:/Monkey2-v1.1.08/modules/gles20/angle/lib/libEGL.lib" "C:/Monkey2-v1.1.08/modules/gles20/angle/lib/libGLESv2.lib" dsound.lib xinput.lib dinput8.lib advapi32.lib ole32.lib shell32.lib oleaut32.lib imm32.lib winmm.lib gdi32.lib user32.lib kernel32.lib version.lib Comdlg32.lib Ws2_32.libCreating library C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.products/Windows/Main.lib and object C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.products/Windows/Main.exp_1_1_1_1_1_1_1_1_1Monkey2_5v1.1.08_2modules_2std_2std.buildv1.1.08_2windows_0debug_0msvc_2include_2_0r.cpp_r.obj : error LNK2019: unresolved external symbol "void __cdecl g_std_permissions_RequestPermissions(struct bbArray<class bbString,1>,struct bbFunction<void __cdecl(struct bbArray<int,1>)>)" (?g_std_permissions_RequestPermissions@@YAXU?$bbArray@VbbString@@$00@@U?$bbFunction@$$A6AXU?$bbArray@H$00@@@Z@@@Z) referenced in function "public: virtual struct bbDeclInfo * * __thiscall mx2_std_permissions_2permissions_typeinfo::initDecls(void)" (?initDecls@mx2_std_permissions_2permissions_typeinfo@@UAEPAPAUbbDeclInfo@@XZ)C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.products/Windows/Main.exe : fatal error LNK1120: 1 unresolved externalsBuild error: System command 'link -subsystem:windows -entry:mainCRTStartup -out:"C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.products/Windows/Main.exe" @tmp/lnkFiles1.txt' failed.link -subsystem:windows -entry:mainCRTStartup -out:"C:/Users/Angus/Documents/Code/Monkey2/EditorNewMonkey/main.products/Windows/Main.exe" @tmp/lnkFiles1.txt***** Fatal mx2cc error *****Internal mx2cc build errorI’ll probably pursue my new plan using MSVC and see if the reflection issue can be addressed later. All the rest of my code is compiling fine, and in a fraction of what it was regardless of reflection module. Less than 30 seconds for a big compile and less than 5 most of the time, a huge boost!
Actually, looking at other topics on the subject, it probably wouldn’t be too tricky. My source isn’t that huge, I could probably wait less than 36 seconds and yeh, the linking is taking almost all of that. I’ll figure it out, I’m sure…
Well, with that setting I’m back down to 36 seconds. If switching to MSVC is something I can do I may look into it, but I feel like I have leg room at that compile time. Don’t want to add another fiddly thing to the heap just yet
If it becomes necessary…
Thanks again.
Yup, making the change in env_windows has made it work again. First build after changing 5.45! But less than a minute after that, so much more bearable. Have noticed much longer compile times since importing reflection in general though, yeh.
Glad to be able to use the latest release.
Thanks!
Played with this for a wee while. It’s entertaining watching the pathfinding work
Makes i easy to set litte traps.
Also, I assume the first pair of things in the error report aren’t serious. One comes from mojo, and the other comes from my own code which is mimicking mojo.
-
AuthorPosts







