Project Thread: Asylum


(BigBadWolf) #1

I posted in the all projects thread a little while ago about a map i started. Had deleted everything on my computer not thinking id get back into it, but i did. So ive been working on it for a couple months slowly, very slowly, but im getting closer every day i work on it.
Anyway, it helps me keep motivated if i show progress on it so here ill keep updates on how its going. Theres still a LOT left to go, and more piles up the more i think about it, but ill get there.

Heres the few screens i posted eirler, and below, a few i took from today. Sorry but as of yet theres no in game shots, hopfully soon though.


(BigBadWolf) #2

and from today…


(aaa3) #3

beautiful enterieurs (7 8), and also that “u” shaped building’s outside (11) is very nicely done, not only compared to the generally lower visual quality/awful realism buildings in quite a lots (not all ofc) of maps, but viewing on its own too…
and wow, an organ! :slight_smile: i’m a classical music fan… u may add pedals and more keyboards than 2? (*)
but still, the whole thing, i mean ur map, generally speaking, has rly nice details

(*:sadly, it does look like an electronically (not mechanically) actuated one because of the register choosers lookalike… ;p)


(stealth6) #4

wow looks really nice!


(th0rn3) #5

Nice :smiley: , very nice… when are you planing a beta 1 release?


(BigBadWolf) #6

Thanks for the compliments!

I had to make an organ for the church, just took some pics off the net and threw something together. I didnt research it but did see the knobs instead of switches. Ill probably leave it, take the time to finish the map instead.

And im not going to have a public beta release. I dont like having a bunch of versions of the map floating arround. Ill probably have a closed beta test when i think its ready for release, to make sure no bugs and if anyone has any suggestions.

Update: Got some work done in the church over the weekend, and some prop placement in the main floor. Hopfuly over the coming week ill finish off the first floor.


(Tyrlop) #7

WOW i must say! this is pure profesional work! realy nice. what will objective be?


(BigBadWolf) #8

thanks

Im leaning more toward allies stealing objective and returning, but possibly a dual objective, I doubt it some though, map is more setup for a single objective.

Update: My brain is completely fried, took me almost 2 days to come up with some scripting for the 2 elevators that share the same call buttons. One elevator goes to floors 1,2,3, and the other goes to basement,1,2. Its pretty complicated how it works but im proud of it, tried to get functionality as close to real as possible. But i wana post it to show off my work, Its super long and unfinished, but is kinda neat i think. Ignore first bit.
Also, i might start on the terrain this weekend, for a change of pace.

Well i was going to post it, but it turns out the post was going to be 18923 characters long, and the forums allow 10000 at most LOL. maybe some other time

Heres one of the cool buffers i came up with. It saves the order in which the call buttons are pressed, and sends them to the elevator buffer where its again ordered with the elevator button presses.


check_buffer
{
	spawn
	{
		accum 0 set 0							//Priority check reference #
		accum 1 set 0							//call3_dn accum - these hold numbers for the priority stack.
		accum 2 set 0							//call2_up accum
		accum 3 set 0							//call2_dn accum
		accum 4 set 0							//call1_up accum
		accum 5 set 0							//call1_dn accum
		accum 6 set 0							//callbasemt_up accum
		accum 7 set 0							//2 step countdown for decrement
		accum 8 set 0							//button lockout, so it wont mess up the buffer cache
	}

	trigger call3_dn
	{
		accum 8 abort_if_bitset 1
		accum 0 inc 1
		accum 1 set 1
		accum 8 bitset 1
		accum 0 abort_if_equal 1
		accum 1 inc 1
		accum 0 abort_if_equal 2
		accum 1 inc 1
		accum 0 abort_if_equal 3
		accum 1 inc 1
		accum 0 abort_if_equal 4
		accum 1 inc 1
		accum 0 abort_if_equal 5
		accum 1 inc 1
	}

	trigger call2_up
	{
		accum 8 abort_if_bitset 2
		accum 0 inc 1
		accum 2 set 1
		accum 8 bitset 2
		accum 0 abort_if_equal 1
		accum 2 inc 1
		accum 0 abort_if_equal 2
		accum 2 inc 1
		accum 0 abort_if_equal 3
		accum 2 inc 1
		accum 0 abort_if_equal 4
		accum 2 inc 1
		accum 0 abort_if_equal 5
		accum 2 inc 1
	}

	trigger call2_dn
	{
		accum 8 abort_if_bitset 3
		accum 0 inc 1
		accum 3 set 1
		accum 8 bitset 3
		accum 0 abort_if_equal 1
		accum 3 inc 1
		accum 0 abort_if_equal 2
		accum 3 inc 1
		accum 0 abort_if_equal 3
		accum 3 inc 1
		accum 0 abort_if_equal 4
		accum 3 inc 1
		accum 0 abort_if_equal 5
		accum 3 inc 1
	}

	trigger call1_up
	{
		accum 8 abort_if_bitset 4
		accum 0 inc 1
		accum 4 set 1
		accum 8 bitset 4
		accum 0 abort_if_equal 1
		accum 4 inc 1
		accum 0 abort_if_equal 2
		accum 4 inc 1
		accum 0 abort_if_equal 3
		accum 4 inc 1
		accum 0 abort_if_equal 4
		accum 4 inc 1
		accum 0 abort_if_equal 5
		accum 4 inc 1
	}

	trigger call1_dn
	{
		accum 8 abort_if_bitset 5
		accum 0 inc 1
		accum 5 set 1
		accum 8 bitset 5
		accum 0 abort_if_equal 1
		accum 5 inc 1
		accum 0 abort_if_equal 2
		accum 5 inc 1
		accum 0 abort_if_equal 3
		accum 5 inc 1
		accum 0 abort_if_equal 4
		accum 5 inc 1
		accum 0 abort_if_equal 5
		accum 5 inc 1
	}

	trigger callbasemt_up
	{
		accum 8 abort_if_bitset 6
		accum 0 inc 1
		accum 6 set 1
		accum 8 bitset 6
		accum 0 abort_if_equal 1
		accum 6 inc 1
		accum 0 abort_if_equal 2
		accum 6 inc 1
		accum 0 abort_if_equal 3
		accum 6 inc 1
		accum 0 abort_if_equal 4
		accum 6 inc 1
		accum 0 abort_if_equal 5
		accum 6 inc 1
	}

	trigger elev1_nextcache							//accums 5 & 6 unavailiable to elevator one
	{
		accum 1 trigger_if_equal 1 elevator1 btn3
		accum 2 trigger_if_equal 1 elevator1 btn2
		accum 3 trigger_if_equal 1 elevator1 btn2
		accum 4 trigger_if_equal 1 elevator1 btn1
		trigger self decrement
	}

	trigger elev2_nextcache							//accums 1 & 2 unavailiable to elevator two
	{
		accum 3 trigger_if_equal 2 elevator2 btn3
		accum 4 trigger_if_equal 2 elevator2 btn2
		accum 5 trigger_if_equal 2 elevator2 btn2
		accum 6 trigger_if_equal 2 elevator2 btn1
		trigger self decrement
	}

	trigger decrement							//stepping accums down for next cache
	{
		accum 7 inc 1
		accum 7 abort_if_not_equal 2					//checking if next cache functions are complete
		accum 0 inc -1
		accum 1 inc -1
		accum 2 inc -1
		accum 3 inc -1
		accum 4 inc -1
		accum 5 inc -1
		accum 6 inc -1
                   accum 7 inc -2
	}

	trigger reset_call3_dn
	{
		accum 8 bitreset 1
	}

	trigger reset_call2_up
	{
		accum 8 bitreset 2
	}

	trigger reset_call2_dn
	{
		accum 8 bitreset 3
	}

	trigger reset_call1_up
	{
		accum 8 bitreset 4
	}

	trigger reset_call1_dn
	{
		accum 8 bitreset 5
	}

	trigger reset_callbasemt_up
	{
		accum 8 bitreset 6
	}

	trigger check								//is there anything left to do?
	{
		accum 0 abort_if_not_equal 0
		trigger elevator_control reset_check_buffer
	}
}

(BigBadWolf) #9

The nextcache handlers are getting a rewrite, bunch of flaws


(RayBan) #10

nice screenshots… reminds me of the thief series… of which i am a huge fan.


(BigBadWolf) #11

Thanks! What are the theif series?

Update: Got my script all worked out, should function like a real elevator. Also trying to finish up the outer shell of the building and hopefully get some terrain busted out, maybe tonight, if i feel motivated enough.

Heres a shot of the outside of the church.

And a bit of the buffer code for the elevators. Merged the decrementers with the next cache handlers, and added in busy and resume functions.


check_buffer			//buffers and orders call button presses
{
	spawn
	{
		accum 0 set 0	//Priority check reference #
		accum 1 set 0	//call3_dn accum - these hold numbers for the priority stack.
		accum 2 set 0	//call2_up accum
		accum 3 set 0	//call2_dn accum
		accum 4 set 0	//call1_up accum
		accum 5 set 0	//call1_dn accum
		accum 6 set 0	//callbasemt_up accum
		accum 7 set 0	//decrement halt/resume check
		accum 8 set 0	//button lockout, so it wont mess up the buffer cache
	}

	trigger call3_dn
	{
		accum 8 abort_if_bitset 1
		accum 0 inc 1
		accum 1 set 1
		accum 8 bitset 1
		accum 0 abort_if_equal 1
		accum 1 inc 1
		accum 0 abort_if_equal 2
		accum 1 inc 1
		accum 0 abort_if_equal 3
		accum 1 inc 1
		accum 0 abort_if_equal 4
		accum 1 inc 1
		accum 0 abort_if_equal 5
		accum 1 inc 1
	}

	trigger call2_up
	{
		accum 8 abort_if_bitset 2
		accum 0 inc 1
		accum 2 set 1
		accum 8 bitset 2
		accum 0 abort_if_equal 1
		accum 2 inc 1
		accum 0 abort_if_equal 2
		accum 2 inc 1
		accum 0 abort_if_equal 3
		accum 2 inc 1
		accum 0 abort_if_equal 4
		accum 2 inc 1
		accum 0 abort_if_equal 5
		accum 2 inc 1
	}

	trigger call2_dn
	{
		accum 8 abort_if_bitset 3
		accum 0 inc 1
		accum 3 set 1
		accum 8 bitset 3
		accum 0 abort_if_equal 1
		accum 3 inc 1
		accum 0 abort_if_equal 2
		accum 3 inc 1
		accum 0 abort_if_equal 3
		accum 3 inc 1
		accum 0 abort_if_equal 4
		accum 3 inc 1
		accum 0 abort_if_equal 5
		accum 3 inc 1
	}

	trigger call1_up
	{
		accum 8 abort_if_bitset 4
		accum 0 inc 1
		accum 4 set 1
		accum 8 bitset 4
		accum 0 abort_if_equal 1
		accum 4 inc 1
		accum 0 abort_if_equal 2
		accum 4 inc 1
		accum 0 abort_if_equal 3
		accum 4 inc 1
		accum 0 abort_if_equal 4
		accum 4 inc 1
		accum 0 abort_if_equal 5
		accum 4 inc 1
	}

	trigger call1_dn
	{
		accum 8 abort_if_bitset 5
		accum 0 inc 1
		accum 5 set 1
		accum 8 bitset 5
		accum 0 abort_if_equal 1
		accum 5 inc 1
		accum 0 abort_if_equal 2
		accum 5 inc 1
		accum 0 abort_if_equal 3
		accum 5 inc 1
		accum 0 abort_if_equal 4
		accum 5 inc 1
		accum 0 abort_if_equal 5
		accum 5 inc 1
	}

	trigger callbasemt_up
	{
		accum 8 abort_if_bitset 6
		accum 0 inc 1
		accum 6 set 1
		accum 8 bitset 6
		accum 0 abort_if_equal 1
		accum 6 inc 1
		accum 0 abort_if_equal 2
		accum 6 inc 1
		accum 0 abort_if_equal 3
		accum 6 inc 1
		accum 0 abort_if_equal 4
		accum 6 inc 1
		accum 0 abort_if_equal 5
		accum 6 inc 1
	}

	trigger elev1_nextcache		//accums 5 & 6 unavailiable to elevator one
	{
		accum 1 trigger_if_equal 1 elevator1 btn3
		accum 2 trigger_if_equal 1 elevator1 btn2
		accum 3 trigger_if_equal 1 elevator1 btn2
		accum 4 trigger_if_equal 1 elevator1 btn1
		wait 100			//decrementing and triggering buffered elevator
		accum 1 inc -1
		accum 2 inc -1
		accum 3 inc -1
		accum 4 inc -1
		accum 7 abort_if_bitset 1	//if elevator is busy, dont allow next cache
		trigger self elev1_nextcache
	
	}

	trigger elev2_nextcache		//accums 1 & 2 unavailiable to elevator two
	{
		accum 3 trigger_if_equal 1 elevator2 btn3
		accum 4 trigger_if_equal 1 elevator2 btn2
		accum 5 trigger_if_equal 1 elevator2 btn2
		accum 6 trigger_if_equal 1 elevator2 btn1
		wait 100			//decrementing and triggering buffered elevator
		accum 3 inc -1
		accum 4 inc -1
		accum 5 inc -1
		accum 6 inc -1
		accum 7 abort_if_bitset 2	//if elevator is busy, dont allow next cache
		trigger self elev2_nextcache
	}

	trigger elev1_busy			//confirming sent instruction to elevator
	{
		accum 7 bitset 1	//halting buffer decrementer
		accum 0 inc -1	//instruction being taken care of, removing from stack
	}

	trigger elev2_busy			//confirming sent instruction to elevator
	{
		accum 7 bitset 2	//halting buffer decrementer
		accum 0 inc -1	//instruction being taken care of, removing from stack
	}

	trigger elev1_resume
	{
		accum 7 bitreset 1		//allow buffer to loop til next cache
		accum 0 abort_if_less_than 1	//checking if anything is left in buffer
		trigger self elev1_nextcache	//if so, execute next cache
	}

	trigger elev2_resume
	{
		accum 7 bitreset 2		//allow buffer to loop til next cache
		accum 0 abort_if_less_than 1	//checking if anything is left in buffer
		trigger self elev1_nextcache	//if so, execute next cache
	}

	trigger reset_call3_dn
	{
		accum 8 bitreset 1
	}

	trigger reset_call2_up
	{
		accum 8 bitreset 2
	}

	trigger reset_call2_dn
	{
		accum 8 bitreset 3
	}

	trigger reset_call1_up
	{
		accum 8 bitreset 4
	}

	trigger reset_call1_dn
	{
		accum 8 bitreset 5
	}

	trigger reset_callbasemt_up
	{
		accum 8 bitreset 6
	}

	trigger check			//is there anything left to do?
	{
		accum 0 abort_if_not_equal 0
		trigger elevator_control reset_check_buffer
		resetscript			//needs testing
	}
}


(Avoc) #12

Very nice and detailed… Though I already fear one thing. The tri-count.