News | Forum | People | FAQ | Links | Search | Register | Log in
Quake Injector Alpha1
megaman and Spirit present: A first alpha version of the Quake Injector.

The Quake Injector is a tool to download, install and play Quake singleplayer maps from the Quaddicted.com archive. Ever been annoyed by an excruciating installation process? Could not figure out how to install a certain map? Well, this tool makes it a piece of cake. Simply pick the map and click Install.

Features

All Quake singleplayer maps ever made (900+ in the database)

Simply pick a map, click install and play

Filter, sort, browse to find your favourite map

Automatically installs dependencies (e.g. Quoth)

Cross-Platform

Free, Open Source Software, released under the GPL.



Screenshot: http://www.quaddicted.com/wp-content/uploads/quakeinjector_20090528.png
Check it out: http://haukerehfeld.de/projects/quakeinjector/
 
works great! very good thing. 
 
HAWT! Will check this out tonight... 
OSX Error Message 
"Java JAR could not be launched".

I don't know if I have Java 6 on my Mac, maybe Willem or someone can try this out. 
Hm 
We haven't tested on macs (none available) but in theory it SHOULD work. I guess you don't have java 6.

If you can, try to start with "java -jar quakeinjector.jar" and pastebin the output for me, that would probably help. 
Wow 
..can't check yet, but does it locate directories? 
FAQ Says It Doesn't 
^
Ok 
Can't check yet because I'm in three projects today. 
Amazing 
But I'm a bit afraid to check it out, my quake dir is already a mess! 
"C:\Users\alex\desktop\quake" Cannot Be Written To! 
but "C:\Users\alex" can, :S? is this something im doing wrong, other than having the quake folder on my desktop for ease of access? 
Edit 
that's "C:\Users\alex\desktop\quake" there only 
 
OK, I get the same error on my Mac. This is the spew in the console:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374) 
Looks 
like you guys don't have java6? I remember the mac version for 6 being delayed some time.

You can check your java version with java -version
Metch 
is that from the engine config dialog? what's the full, exact path you put? is that & a mistake in markup/ a typo? are you sure the path is writeable? which one of the fields?

I'm using the java lib functions for those checks, so i'm pretty sure they should work well with all paths, unless there's some fuckup on my part that makes it check the wrong paths in the first place. 
Ci475 
just copy the engine and id1/pak0.pak and id1/pak1.pak to some new directory and start from a clean install ;-) 
Megaman, 
the "&..." stuff gets added her for some reason when i type out the full dir, it ends at the folder "quake". it is the "engine configuration" dialog, under the type box [the place where you type stuff of course] labeled "quake directory"; i put in the path and the comment next to it says "cannot be written to!" 
Metch ... Using Vista? 
Vista can be cruel.

/a guess ... even possibly a wrong guess 
Java 6 
There is a Java 6 VM for themac, and it should be installed on every Mac running Leoopard. But you have to specifiy which Java version you want to use as the default for running programs. Go to /Applications/Utilities/Java and launch Java Settings (don't know the exact english name). There, change the order of priority of the VMs so that Java 6 64bit is on top. Now it should work. 
.app 
It doesn't recognize application bundles as executable on OS X. If I type the path to the actual executable inside the bundle, it works. But it would be better if it could just handle .app bundles. 
Also 
Fitz SDL 0.8 seems to hang (after I leave the game) until I quit your app on OS X. It closes the window alright, goes back to desktop, but the icon keeps sitting in the dock until I force quit it or leave your program. That seems odd, how do you start the process? 
Hmmm 
1) I check with File.canExecute() -- if the .app thing doesn't have the proper rights, there's not much I can do. Or is that .app just a folder? But then the message would be different, iirc.

2) i'm using processbuilder to start the engine. The code is in de.haukerehfeld.quakeinjector. EngineStarter.start() 
Source Code For Starting 
Hmm 
.app bundles are just directories with special treatment by the Mac OS. It's possible that File.canExecute() doesn't work for app bundles. The permissions are not a problem I think.

About Fitzquake not quitting, that seems to be a bug with Fitz or could be related to the way it works. I just tested it with a different engine and it worked fine. So nevermind.

Here are a few minor observations:
- The app could look better. With a few tweaks here and there it would look less amateurish (sorry about that).
- It should remember the sort column and direction as well as window size and layout (esp. column layout - I always have to resize the release date column manually).
- Make the progress bar disappear when installing a map is done. It's just confusing when it remains down there because on OS X, it animates. Make it disappear maybe after 3 seconds or so.
- Double clicking on a map in the table should install and play it.
- If you press play, the launch dialog of the engine (Fitz has one on mac, as well as the Fruitz of Dojo engines) stays behind your app. That's very annoying. It should be in front of your app.
- Make the rating column show stars or dots or whatever - the vertical bars are hard to read. Or even better, show numbers, because who can tell the difference between 8 and 9 vertical bars? Just show the rating as a number.

Okay, that's it with the negativity ;-). Apart from those minor flaws, I really like the app very much! It's very useful and easy to use, so thanks for all the effort you put into it. It's well appreciated (even though it might not seem that way after all the nitpicking above)! 
 
Wpw, yeah, my Java looks to be ancient old:

java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-284)
Java HotSpot(TM) Client VM (build 1.5.0_16-133, mixed mode, sharing) 
 
SleepWalker

Thanks for the "Java Preferences" tip! Works great now. Woot! 
Baker 
...yesi am using vista :S 
 
Ha! Just used it to install and play a map. This is -awesome- guys! Really nice work. As SleepWalker said, it could use some polish and refinement but it's great as it is as well. A great addition to my Quaking life!

Now to play some maps I haven't tried before. Let's see... 
 
- The app could look better. With a few tweaks here and there it would look less amateurish (sorry about that).
Yes! But what and where?

- Double clicking on a map in the table should install and play it.
I am against this. Doubleclicks happen accidentally and I would not want to trigger something that big.

- If you press play, the launch dialog of the engine stays behind your app.
Argh, don't these engine have a commandline switch to disable that dialog?

Yes, the rating bars look terrible.

Thanks! 
 
"Yes! But what and where? "

I guess since you're using Java there's some sort of cross platform UI layer going on here? If so, yeah, you're kind of boned. If I were designing this from the ground up for a native OS I could design a nice looking interface but cross platform kinda sucks. It removes the nice parts of every OS and leaves you with the bare bones common stuff. 
Seriously? 
this must have been a lot of effort guys! every map released to date...the mind boggles. 
Awesome! 
cool program, it eliminates the boring step of downloading and unzipping the level. making it ready in several secs after you found it on quaddicted. cool to see screenshot and little description there as well.
good job! 
If Unzipping Is Boring... 
...you're doing it wrong 
 
No, it's boring. As is copying the file into the right folder.

Quake Injector = awesome. I played a bunch of maps this morning that I've never seen before simply because it was suddenly so easy. 
 
Sorry, I get the joke, I just wanted to send some more praise Quake Injector's way. :P 
Willem You Angry Little Man!!! 
Do you have no respect for the old days, the bad days, the all-or-nothing days - where people had to actually use their brains and keyboards to achieve something?? Megaspirit just cater to a jaded and depraved audience who shuns any kind of effort while still demanding a maximum of outcome. The new paradigm modern western society has developed to. And the tool is free, too... 
 
Is there any way to write a tool that would play the levels for me as well? I'm happy to sit in my chair but, I mean, come on ... haven't I done enough? 
Damn Right 
Considering mappers spent weeks or months working on a single map, why can't they also play their maps and record a demo which they then put on youtube? Compared to creating the map, this little extra effort isn't too much to ask for. Seriously, people... 
@negke 
"just cater to a jaded and depraved audience who shuns any kind of effort while still demanding a maximum of outcome"

Welcome to the world!

why can't they also play their maps and record a demo which they then put on youtube

Lack of peer pressure and no one leading by example.

Plus a somewhat small audience, which ironically could change if mappers did that with all new releases. 
I Meant Youtube The Map Instead Of Releasing It 
Didn't think anyone would take my post seriously, though. 
Don't Worry 
RemakeQuake will be both AVI and MP4 format, we may do a RealPlayer version if consumer demand is high enough.

After focus grouping we found that most gamers don't play their games, and if they do they don't finish them.

So we've long since dropped the interactive part of the mod, catering to YOUR needs AHEAD of time! 
Re: Spirit's Work 
It is so impressive to see someone continually trying to "get it right" and not stopping at some arbitrary lazy definition of the concept. 
 
.app bundles are just directories with special treatment by the Mac OS. It's possible that File.canExecute() doesn't work for app bundles. The permissions are not a problem I think.
I don't really see how I can 'fix' the behaviour then. I really don't want os specific code in there... I could possibly drop the executable check, but that would have consequences for the *nix guys. Also, I think it checks if the exe is a file, too... any ideas?

About Fitzquake not quitting, that seems to be a bug with Fitz or could be related to the way it works. I just tested it with a different engine and it worked fine. So nevermind. Hm, the processbuilder seems to have issues.

Here are a few minor observations:
- The app could look better. With a few tweaks here and there it would look less amateurish (sorry about that).

Yeah, as spirit said, details! :D

- It should remember the sort column and direction as well as window size and layout (esp. column layout - I always have to resize the release date column manually).
Yeah, this is a planned feature, but i hadn't thought of the column sizes.

- Make the progress bar disappear when installing a map is done. It's just confusing when it remains down there because on OS X, it animates.
and yet, the queue provides valuable information. I dunno, my first thought is "don't use a gay OS then" :P An idea would be to replace the progress bars with labels.

- If you press play, the launch dialog of the engine (Fitz has one on mac, as well as the Fruitz of Dojo engines) stays behind your app. That's very annoying. It should be in front of your app.
Ah, i wondered why dp was taking so long to start, but it never occured to me that i was just not seeing the start thing. Will try to fix.

- Make the rating column show stars or dots or whatever - the vertical bars are hard to read. Or even better, show numbers, because who can tell the difference between 8 and 9 vertical bars? Just show the rating as a number.
Its actually steps of 2, because there are only ratings from 1-5 :P But yeah, some kind of better representation would be nice. Unicode stars work fine on ubuntu, but on my XP the application font doesn't support those characters... grml. 
Could You Use An Image? 
You could then use almost anything you wanted in the rating column. 
 
"I don't really see how I can 'fix' the behaviour then. I really don't want os specific code in there... I could possibly drop the executable check, but that would have consequences for the *nix guys. Also, I think it checks if the exe is a file, too... any ideas? "

Can't you just check the extension of the file and allow anything with ".app"? 
Well 
I doubt that allowing .app directories would work. You have to point it to the actual executable inside the bundle I think - depends on whether processbuilder can execute .app bundles directly (doubtful). There is a system command to start an .app bundle called 'open', see here:

http://osxdaily.com/2007/02/01/how-to-launch-gui-applications-from-the-terminal/

But that's platform specific code again. On the other hand, do you want to be a purist and have an app that's sub-par for a bunch of users, or eat some dirt in the form of platform specific code and deliver a program that runs great for everybody? ;-) 
 
Well, "sub par" is a bit of a stretch as:

a) There are only handful of Mac users, and

b) Once you set it up once, you never have to look at it again.

I agree that it would be nicer if it worked slicker but ... I dunno, I think it's fine for a community based project. Rock on, guys!

Although I do agree that removing the progress bars once the download is done would be nice. 
It's Not Only The Purist Side 
another - practical - problem is that i wouldn't be able to test mac-specific code :(

I'll look into it though. 
Yeah, What Willem Said 
i tend to nitpick ;-) 
Hehe 
that's a good thing! 
 
If .app would get an exception, then what about .sh, .bat etc...

How about a "ignore" option in the config dialog and have people who use non-executables as executables use that? Maybe not disable the save button but prompt with a "ignore errors?" box when there are errors?

Alternatively you can simply enter the filename in the config.properties file. 
OR 
Maybe you can set a swing property to allow people to browse into the .app bundles. Problem solved. Check this out:


FileChooser. There are two properties for dictating the treatment of .app and .pkg files when using JFileChooser. Both properties need to be set programmatically in your application (you will need to make changes to your code). The properties for .pkg installer packages and .app application bundles, respectively, are

JFileChooser.packageIsTraversable

JFileChooser.appBundleIsTraversable

Possible values for these properties are always (treat as folders, the default behavior) and never (treat as files). These properties are set on a per-instance basis via the putClientProperty() instance method inherited from JComponent.

There are a few known issues that currently exist with using these properties:

* Setting JFileChooser.packageIsTraversable to never will currently do so for both .pkg and .app files

* Setting JFileChooser.appBundleIsTraversable to never will cause packageIsTraversable to be ignored, effectively causing the default behavior of navigable .pkg files in JFileChooser.

In other words, you may currently use these properties to make only .app files, or both .app and .pkg files, navigable.

Note: The JFileChooser properties only have an effect when using the Aqua look and feel in Swing, since it is the only look and feel which Apple controls.


From here http://developer.apple.com/technotes/tn/tn2042.html#TNTAG10

The information might be outdated, but I'd think that these properties still work. 
Ijed 
heh heh, snicker. 
Ass Injector More Like 
...I always knew there was something sinister about the pink syringe n shit... 
 
Actually this would fit perfectly in terms of weapon design: http://en.wikipedia.org/wiki/File:Clyster_syringes.jpg 
Spirit 
Clyster was highly recommended by Hippocrate in any "hole wash"... have fun :P 
Nitpick 
"All Quake singleplayer maps ever made" is obviously not true 
Of Course 
It's all about marketing. ;-)

I even have several on my harddisk that are not included yet.

But I think from some percentage upwards one can say it's "all". 
So I Guess Theres No Fix For My Issue? 
damn... 
 
Could you try a "normal" path like c:\games\quake\ ?
The pak files are just about 50 MB so that shouldn't be a problem. 
Finally Tried This... 
awesome. it just works. (windows xp) 
 
"Could you try a "normal" path like c:\games\quake\ ?
The pak files are just about 50 MB so that shouldn't be a problem."

mmm...maybe 
Metch 
i still don't really get what's happening on your side, on what paths, etc., sry :(

It would be awesome if you could describe it once more, with all the detail, so i can reproduce the bug. 
 
One of these days I will install all the packages for science. Yay science! 
Wow 
not been playing Quake much recently but decided to have a look at this. Seems like very impressive stuff so far; Everything I tried worked a charm on a clean install of Quake (yeah, didn't dare let it loose on my mess of a Quake folder).


Nice work. 
-quoth 
The user should be able to select Quoth as an installed expansion pack (just like hipnotic and rogue), though. I tried to download a Quoth map and injector tried to download the entire quoth pack again, with me having already installed it... 
Nope 
Sorry. Quoth is just a package like all others. rogue and hipnotic only get special treatment because they are not free.

I understand that the inability to scan an existing Quake installation is frustrating but the work required for something that must be immense.

If you do not want to install Quoth through the Injector but want it to show as installed you can edit the installedMaps.xml file (same directory as the quakeinjector.jar). Put this inside there somewhere:

<map id="quoth">
</map>

I have not tested it but it should work. 
Understandable 
Alright, thanks. :-E 
That Works! 
 
 
I don't remember who asked and where but I have finally added necros' Moldy Tower to it. 
Spirit 
Is Quake Injector supporting Quoth mod ? 
 
For sure, it even automatically installs it if required and you don't have already. See the posts right above for more info. 
Spirit 
OK, thanks, I read it too fast, and I missed the point... ;) 
Btw 
why sm82 rubicondom isn't available in quaddicted q1sp archive? 
:] 
Because as sm* file it went straight into the speedmapping list and so far no one made the effort of cleaning up. 
 
If I added all the maps included in packs (like for example all the qte*m* maps in Travail) to the list of possible startmaps, how should they be shown?

a) Alphabetically:
e1m1
e1m2
...
e1m7
e1m8

b) In order of appearance (this would be nicer for non alphanumerically ordered ones):
...
e1m4
e1m8
e1m5
...

Should secret levels be shown?
Should the level names (not only the filenames) also be shown (please no, too much work)?
Should the Injector remember the currently selected map?

I plan to add a "continue from last savegame" feature so that last idea might be absolutely unneeded. 
 
Also, is anyone apart from megaman and me testing recent git versions? Are there any mean bugs that we are unaware of? 
Yeah 
Here's the list of bugs that we are aware of (and that aren't already fixed in the git releases):

http://github.com/hrehfeld/QuakeInjector/issues

Feel free to add bugs and feature requests, or maybe just details for existing ones. 
Spirit: 
i'd show the levels in alphabetical order. For cases where the order is not the same as the "play order", i think that is intentional on the part of the authors. e.g. the name "e1m8" doesn't give you any hints about what level the entrance is hidden in, but if you put it after e1m4 in the list, then it does give a hint. 
OK I Tried This And It Rocks!!! 
Well done! 
Post A Reply:
Name:
Title:
Body:
message
question
exclamation
idea
flame
noflame
error
skull
beer
moon
pent
rocket
sheep
pacman
pig
cheese
worldcraft
gauntlet
crate
pitfall
pimp
smile
cool
sad
frown
oi
yay
tongue
evil
wink
neutral
q1
q2
q3
ut
hl
cs
doom
dkt
serious
cube
Website copyright © 2002-2017 John Fitzgibbons. All posts are copyright their respective authors.