Friday, July 04, 2008

Point-n-Click selection

After a long hiatus (what with getting a new job and all) I've managed to get a bit more done on this project. Today I started work on being able to select objects by clicking with the mouse. Currently it only works for sectors, and has some serious issues even for that limited scenario, but it's good to get something basic in place.

Thursday, January 31, 2008

ZED Updated

Find the latest ZED in Downloads section.

Tuesday, October 02, 2007

Delete Sector and Undo/Redo

Delete sector was implemented today, along with the framework for unlimited undo/redo. The undo/redo is not totally bug-free - for example undo the deletion of a sector adds it back at the end of the sector list, not where it was deleted from, so the sector number will change, but for a first pass it is good enough.

Monday, October 01, 2007

Sector Add implemented

I've managed to get the "add sector" functionality added to JKW-JKL. "Delete sector" and "cleave sector" are the two next targets.

Tuesday, May 29, 2007

Lexical Analyser started

Started work today on writing a lexical analyser for cog scripts. This converts a stream of text into a stream of "tokens" (identifying portions of the text that are keywords, variable identifiers, operators, etc) that can be used for two main purposes:
1) a better syntax highlighter (current implementation is just... horrid)
2) as the first stage of a parser that will be able to produce a parse tree of the cog script - this allows for some of the more advanced features of an IDE.

I was going to put in a quick port to C# of Parsec as a triggerable function, but looking at the source code, it was probably going to take me as long to port as it would be to do it the way I ultimately wanted to do it :)

Thursday, May 24, 2007

Tab characters fixed

I finally got around to fixing the code that handles mouse clicks. Now when you click on the text to set the cursor position, it correctly takes into account any tab characters on the line.
This will also be needed for text selection which I've begun work on (as the first step towards copy and paste functionality).

Wednesday, May 23, 2007

First look - v0.1.1

I haven't worked on this for a while - Real Life(TM) got in the way.

I've fixed a few of the niggles in the text editor. There are plenty more to finish off, but I thought I'd let you guys get your hands on a very early build. It's just cog editing at the moment though.

Head over to the Downloads page to grab a copy.

Wednesday, April 25, 2007

Moving Forward

Since my last update, I've moved quite a way forward. I have released v0.1 of JKW to a couple of people who were bugging me to see it. Still very much in its infancy, you could only work with cog files. It had a basic text editing interface and a working, albeit slightly buggy, syntax highlighter. Since then I've pulled the Level Editor component into the new application architecture (which I won't go into here - ask me if you're interested) and exposed that functinoality again. I'll then work on establishing the idea of a collection of documents making up a project (again, this is a document, so could you have a project that contains, among other documents, another project? I'm saying no, unless someone can come up with a compelling argument for writing a lot of code to prevent circular references turning into stack overflows).

Wednesday, April 18, 2007

On Windows, Messages and Focus

Just solved a rather annoying problem I was having with the basic text interface. I've been fiddling with this for a couple of weeks now, and it was holding up pretty much all progress I was making. The problem was that the scrollbars were being a bit over-reactive, and scrolling the document when I only wanted to move the caret around. I tried various methods to kill off this feature, even resorting to inheriting from the scroll bar control and trying to override any code that was dealing with keyboard input. Whilst this didn't actually work (the scroll bar stilled scrolled), it did - with a large dosing of help from a colleague - lead me to finding the actual cause of the problem as being that the painter control that was drawing the text to screen was passing focus away from itself by not recognising the arrow keys as input. I should now be able to fix the bug in a nicely elegant way by handling the PreviewKeyDown event on all the child controls.

Tuesday, March 27, 2007

A little progress

Okay, I've not done much for the last week or two. I've had a mare of a week at work and then got myself a nasty cold which I'm only just shaking off. However, I'm picking this back up. What I'm working towards at the moment is releasing an alpha version of a stand-alone JKW-Cog. This will probably be a SDI (not the lovely MDI goodness I've been posting screenies of) and will really only feature syntax highlighting.
What's needed before then is tidying up, really. There are several features of a text editor that aren't currently finished - such as clicking the mouse on the screen and moving the cursor to the position underneath. Also, I never quite got around to writing the Save File code. But hey, who uses that feature, right?

Friday, March 16, 2007

Text Editor

I've been making steady progress with the text editor within JKW. The cursor needs a slight rework so that it can be specified in terms of line number and column within line, rather than the current method of offset in the text buffer. This is necessary now that I've got the line handling routines in place that will display multiple line files correctly. The other thing I've recently completed is the first draft of file loading. At the moment it is tied directly into the Cog class, but will move into the "document" interface (this covers not just text documents, but levels, 3dos, etc as well) and use a strategy to allow the different document types to have their own specialised code.

Friday, March 09, 2007

COG editing started

Decided to take a break from level editing functionality to get the ball rolling on cog editing. Whilst it might not look like more than just a text box on a form at the moment, it's actually a view on to a text buffer that is held separately in memory as an object in its own right. This will make it much easier to implement things like syntax highlighting and code completion.

Wednesday, February 28, 2007

Cleave Preview

Finally something interesting to post. After correcting all the bugs in the code to handle mouse position, I finally got around to working on the cleave command. At the moment it can calculate where the new edges will be, and previews that in the level editor as you drag out the cleave.

Next I will work on splitting the sector along that plane.

Thursday, February 22, 2007

10: Refactor; 20: Goto 10;

So, I figured today that refactoring the basic objects I'm using to store information about the 3D space would be useful. I'm adding a "Line" object represented by a point and a vector as the maths dictates it should, rather than letting a "position" (point + orientation) stand in because it was already written.
The code for working out what part of the grid was underneath your cursor has a bug and the old code for handling lines made it a huge mess of trigonometric functions to wade through to figure out where I'd messed up. The new code will be nice and simple vector arithmetic, which should speed up the bug hunt.
Summary: Cleave still isn't finished.

Monday, February 19, 2007

Cleaving progress

Just a quick progress update to let everyone know I haven't forgotten about this project.

I've been spending a while working to get the first editing command working: Cleave. I've needed to write a lot of code that will be common to all editing operations, so subsequent commands will hopefully materialise quicker.

Right now, I'm immersed in the middle of a refactoring of the code to handle the grid - necessary for converting the window co-ordinates of the mouse into the grid co-ordinates of the point "underneath" the mouse.

Once that is out of the way, I have two major tasks left on Cleave: firstly, visualising the cleave whilst dragging the mouse; secondly, actually cleaving the sector.

Friday, February 09, 2007

Cameras and a scare

Refactored the camera code to be handled by its own class. I implemented some rudimentary mouse control into the camera - hold down the right mouse button and you can spin the level around.
Had a moment of panic when the memory stick that is currently holding the only copy of the source code decided to pretend to be dead. I have already contacted the guy I was begging access to a source repository from, to see where he's at with getting me access. I've also copied the latest source onto another computer.

Thursday, February 08, 2007

Progress update

Hammered out the architecture of updating the model and propogating events encapsulating that update to the views observing those models. That is: when you make a change to a level, you can see the change you made - not exactly overwhelming when put in those terms ;)
I'll next take a small diversion into saving/loading projects, so that I can start building a level in this thing to see where features are needed or the interface is klunky.

Wednesday, February 07, 2007

Progress update

Project Explorer - base code laid down for this section. Handles levels only at this point (but then, levels are the only thing you can create within a project at the moment as well)
Level Editor - possible to have several views of a level open at once. Changes to level made in one window propogate to all windows. Viewpoint and grid are specific to the window and can be altered independently.

Next part to work on will be general level editing.

Sunday, July 09, 2006

No Deadlines This Time

Well, even though I tried to get an initial release of JKW-Cog done by yesterday, I failed to do so. I will continue working on it because I feel I am making good progress when I do find the time to work on it.

Monday, July 03, 2006

Change of Plans

I made another attempt at using the COG VM and was successful. Because I changed my plans near the end of the week, the first release is now planned for the end of *this* week.

Monday, June 26, 2006

How about a new Parsec?

I have tried to edit the COG VM (which Jon`C made for Sith 2) to be a syntax checker to replace Parsec, but have had several problems doing so. To get things moving, I will instead convert Parsec's BASIC code into C++ and add features via the C++ code. I plan to have this done by the end of this week.

Friday, March 17, 2006

New ConMan

Wanting to correct the problem with opening GOBs like SBX 3.1 for JK, I recompiled the ConMan source. I discovered that the source had extra features in it than the most recently released ConMan 0.9a. Also, I fixed the bug, so now ConMan should open SBX 3.1 and others like it. Find it on the download page. Please report bugs with ConMan in the JKW-Gob forum topic.

Thursday, March 16, 2006

JKW-3do Second Version

The latest version now correctly handles meshes that are not in the same order in all 3dos. Enjoy!

Wednesday, March 15, 2006

Initial JKW-3do Tool Available

A command-line tool for combining 3do files as LODs into one 3do file is available for download. See the download description for details.

ZED and Project Merges

A recompiled version of JED 0.951 (from its source code) has been in private beta for two months, and has been working well. So, now it is available for all to download in this project.

Because of the time needed to finish this very large project (JKWorkshop), small tools (such as JKW-ZED above) will be built along the way. This will provide editors a chance to use new tools as soon as they are useful as well as provide useful feedback before each tool is merged into the final JKWorkshop.

The 3DO LOD Tool project has been merged with this one, and the tool will now be called, JKW-3do.

Sunday, May 29, 2005

GOB Editing First

Some GOB Management features implemented. See Description page for details.

Help Wanted:
- Assistance in implementing each editing section of the tool.
- Source code for the various editing tools.
- Bug reports and feature ideas are welcome.