Caveman v3.0 Beta 19 released
Caveman v3.0 Beta 19 released!
Numerous changes in Beta 19:
* added export band member
* added import band member
* added de-activate band member
* make pigment rock object smaller.
* draws obj in hand for find pigment rock action.
* confirmed game won't run on XP.
* added obj in hand for make/find objects #70 pigments thru #173 blanket (103 objects - some need new anis though). added dinfo and fix as needed. made draw_dropped_object use dinfo where appropriate.
* added: stone drill required to make stone top armor.
* completed first pass at assigning obj in hand for make or find anis for all 237 object types. but some still need new graphics and / or anis. so most make, find, and repair animations draw object in right hand now, say 400-500 animations or so.
* reduced size of clay object
* make, repair, demolish type animations drawn closer to ground.
* increased NPC base chance to hit from 50% to 70%.
* increased BM hand attack base chance to hit from 60% to 70%.
* increased BM missile attack base chance to hit from 50% to 70%.
* moved make ani back down to -1.5
* made selected_dropped_object the first check in select().
* turned off colision avoidance in rocks. terrains is so thick they appear to just cycle between collision avoidance and collision recovery.
* select: checks for shelter before bedding.
* collision recovery: cut recovery time in half, since they now move at sprint speed (2x run speed)
* BM attack AI: explicitly calcs rng to tgt for start of attack. rng may have not been preset in cases such as "attack orders tgt", which overrides the tgt set by set_tgt. set_tgt pre-calcs rng and rh to tgt when it set the tgt.
* BM AI: no badguys nearby: priorities changed to:
1. do action
2. collision recovery
3. do orders
4. recover fatigue
* BM collision recovery: cut recovery time in half, since they now move at sprint speed (2x run speed)
* maintain dist ai: added is_maintaining _distance AI state flag to animalrec.
AI now flees at 25 and stops fleeing at 50, instead of starting and stopping at 20.
* added BM AI on/off for CM0 via backslash key w/ AI display
* BM AI: draws wpn if attacking
* BM AI: reduced start atk rng
* sleep ani drawn lower to ground
* made sleep take a little longer
* increased rad for "inside perm shelter" from 5 to 10 feet
* daydream, watch clouds, stargaze: mood now goes up one every 5 minutes not 6.
* improved bigdice routine
* AI backs up at half speed
* BM AI start attack range for missile wpns set to 50.
* turned off collision avoiadance in woods - too dense
* collision avoidance rng reduced fro 15 to 10 ft
* flint spear: reduced cordage required from 3 to 2
* doubled value of hides and all objects made from hides
* done - made int affect building and fixing hut
* done - made int affect learn action: time, chance, and xp earned.
* done - fill waterskins takes too long
* done - draw all bm's on local map
* done - remove dead / butchered / sacrificed anilas after a while
* done - kick bm out of band
* done: "<bm name> you learned something new about <skill>" msg
* done: show bm name for a few secs when tab to next bm
* done: changed "do" and ".do" keywords in cscript to "d" and ".d". removed all c++ code blocks from source code. all code is now cscript or c++ that does not conflict with cscipt keywords. no c++ code pass thru blocks required! no "cpp" and ".cpp" everyhwere in the code! recompiled all source code with new version of cscript.
* done: made perm shelters a world object
* done: repair: parts reqd: 1/2 round down, not up.
* done: repair: quality is now avg of old and new.
* done - too easy to find cool rocks
* done - adj party str - too many badguys?
* done - companion ai stop when within 20
* done - increase base chance to make lean-to
* done - made int have greater effect on time and chance to learn stuff
* done: increase value of hides and stuff made with hides
* done: make flint tipped spear: only reqires two cordage.
* done: objects ropped in aved get placed outside caves.
* done: made int affect qual of tirm repaired
* dont let them pickup player huts - and abandoned huts - and landmarks
* adjust hut collision checks
* separate key for pickup dropped object. - z?
* bmsg "you pass out from lack of sleep"
* add "quiting caveman" screen at end of prog
* storepit full msg added, objects no longer lost when pit is full.
* precip increases water table by twice as much. no precip reduces water table by half as much. water table goes to baseline twice as fast over time. had global warming issues.
* automap_small_stuff radius increased to 300 feet
* fixed: automap_small_stuff does huts now.
* added next idle band member hotkey "N"
* daydream etc increases mood faster
* bmsg you arrive at your dest
* quiting caveman screen
* show all parts / skils for action if you dont have something
* joke and story actions: increased chance of relations improvement, increased mood boost.
* doubled find time for flint and cool rocks
* added initializing blank game msg
* increased base chance to make temp shelter. made int affect chance. improved how chance is calculated.
* increased chance to make storepit
* reduced caveman base number appearing.
* reduced effect of party strength on cavean number appearing
* party strength based on those within 300 feet, not on those in same map sqaure.
* increased drawing radius of bedding and storepits
* fixed: party_strength: using a continue statment in the while loop skipped the call to next_active_BM at the end of the loop. hazards of using a "findfirst/findnext while loop" instead of a "0 to max for loop". bloody generic iterators!
* make cordage, make arrow actions: now continue until you run out of parts.
* show next BM name in UL corner of screen for a moment when tab to next BM.
* remove butchered / sacrificed animals after some period of time.
* increased no draw rng for huts and storepits.
* fixed: common ai: tgt is stronger: was using BMs hp adjusted for diff lvl, not base hp for a type 2 animal (homo sapien). predators would close, then flee during common fight or flight.
* fixed: subdued and captured animals shouldn't be able to move.
* turned off atk to subdue. doesnt make sense for domesticating dire wolves, and you can't subdue and capture cavemen, and you shouldnt really be able to domesticate anything else, so...
* dire wolf hp reduced to less than humans so they dont atk people.
* need to implement new way to domesticate dire wolf. dire wolf goes for dropped meat. drop enough they follow you. drop more they allow you to approach. give meat action. give enough meat, they become pet. added new dire wolf AI: if dropped meat nearby, they goto dropped meat and eat it. eat enough, they start following the closest BM at that time. eat more, that bm can approach and select and get dire wolf menu (give meat, cancel). give enough eat, they become state=TAMED.
* dire wolf - they dont move to the meat - exhausted? called run (spd based on rng to tgt) instead of run maxspd
* fixed: predators ignore stronger animals. sets pred tgt (ignore equal or stronger) only when hunting, and sets wild tgt (dont ignore any) the rest of the time.
* fatigued animals now rest until fully rested, not 2% rested
* wolf: moveto owner: runs if rng > 100
* wolves with relations > 1000 are not removed when distant
* player can now accel tieme faster than 128x when only predators weaker than humans are nearby
* added message when tame wolf
* added "enter name for new pet..." when tame wolf
* fixed: other wolves attack your wolf when you tame it. friendly wolves no longer count as leader for flock behavior. other wolves now wander off.
* fixed: wounded tame animals flee forever. made AI flee from closest threat, not current target (pet owner if pet is far from owner). added closest threat function based on animal type (wild animals and hostile cavemen, -or- pets, warriors, companions, friendly cavemen, and bandmembers).
* predators now only target weaker foes, not equal or weaker.
* wild leaders for flock behavoir now excludes tamed animals and friendly wolves.
* fixed: drink from leaves: says its snowing when its raining! used 40 degrees instead of SNOW_TEMP. searched the entire code. this was the only place SNOW_TEMP wasn't used when it should be.
* fixed: pick fruit crashes game. tool_and_part_quality: calculating avg quality of tools and parts used: did divide by zero if numtools and numparts was zero. now returns quality of 100 of numtools and numparts is zero. did same fix to RR_tool_and_part_quality. no other occurances of similar code "/ sum count" in the game. shift select blows up if list full, no range check? - same bug.
* fixed: pick fruit action - game crashes. tool_and_part_quality: calculate avg tool and part quality: divide by zero if numparts and numtools = 0. now returns quality 100 if numprts and numtools = 0. did same fix to RR_tool_and_part_quality. searched entire code for: "/ sum" to find bugs similar to: "/ sum count". none found.
* fixed: full storpit - get stuff - scroll way down crahses? select_object and shift_select_object: list was 20 long, now is 40 long, scroll limit was still max-20, not max-40. no similar bugs found.
* animals list full? added error messages everywhere the game adds animals.
* cool rocks still too easy to find. doubled time required. cut chance in half. works out to about 4x as hard.
* fixed: demolish wood shelter doesnt take long enough. demolish_shelter action used buildtime(world_object_index), not buildtime(world_object_index.shelter_type) oops! <g>.
* fixed: demolish leanto doesnt take long enough: fix to demolish_shelter action fixed this too!
* base chance to make bedding too low? increased from 50% to 70%
* bow wears out too quickly? cut avg rate of wear by factor of 10.
* add storepit - doesnt rest chunks and collision maps? the low level funtion now does it for all calls to add storpit.
* fixed: demolish bedding in shelter demolishes the bedding. was demolishing sheletr_index, not sheleter_index.bedding_index oops! <g>.
* fixed: shelter weathers away while bm inside asleep, or inside in general. added msg that your temp shelter weathered away.
* fixed: ingame menu: increase width of hotspots
* fixed: ingame menu: video and gameplay hotspots overlap
* fixed: ingame menu: only play klik when the click on an option.
* fixed: dont let them move x-country from inside temp shelter. did "up a tree" too! now can only move x-country when OUTSIDE or ONRAFT
* fixed: npcs: all interests should be unique
* show msg when complete search dead caveman action, then show the take item screen.
* search dead caveman: if they dont have anything, just show a msg instead of the take item screen.
* fixed: daydream etc should reduce fatigue. energy wasn't set to 1 for daydream, stargaze, and watch clouds actions. energy=1 means they recharge fatigue while doing that action.
* fill waterskinrain doesnt take long enough - increased time by factor of 10.
* done: to make / fix (skills list) msg: dont say make / fix. its used for stuff like learn too!
* fixed: collision recovery moves before it finishes turning? now it doesnt move until abs(rh) < ~11 degrees, not <45 degreees.
* what happens when run out of ani players? turned on error msg in z3d library
* fixed: falling rain should not wake up bms inside a hut. BMs in player huts and rock shelters are not woken up by precip.
* fixed: move following bm's moves any following even if not nearby or following someone else. only move nearby who are following the BM in question.
* increase size of collision map cache. increased from 20 to 40.
* done: make mouse wheel zoom camera in and out faster. did keyboard controls too (numpad plus and minus by default).
* done: 3pv cam vs hut interior - switch to 1pv temporarily? uses 1pv when player is inside hut.
* fixed: glypto moves too fast. cut speed in half.
* big cats get stuck in woods
. big animal encounter spacing vs rocks and other dense terrain
. big animal encounter rng too close
. elasmo vs woods
. imp mammoth encounters too close to player.
. imp mammoths start too close togetehr. flip betw collision avoiddance and recovery.
. palorchestes gets stuck in woods
increased spacing. increased encounter range based on size of group. now near edge of group, not center of group, is at encounter range. fixed something in way of animal - it didnt take radius into account - thus the animals stuck in rocks etc. now it checks center, and the 4 bbox corners for something in way of an animal when doing initial placement of animals encountered.
* fixed: game crashes when you try to fix something that can't be fixed (wood grindstone, 1 hand hammer, etc). now it gives you a message saying that type of object can't be repaiered.
* fixed: follower joins band: rain sfx stops. player stuck in collision with new BM.
action sfx init-ed to 0 not -1. didn't adjust bandmember location. adj bm loc didnt handle radius.
stuck in collsion with new bm: rounding error: animal_in_way_of_bm used float rng, bm_in_way_of_bm used ints. now both use floats.
* fixed: move followers, moves those with orders to the contrary suchas wait here goto here, etc. followers with goto orders, or orders to follow someone other than the moving BM, dont get moved.
* attack thief - all neutrals become hostile? only if you attack before the dialog shows.
* yield: init NPC_type so yield works? test yield. make sure it works. it may not use npc_type anymore. yield works. npc type is set already. make thief_dialog set thief to NPC_KILLER if they
become a HOSTILE.
* cave hyena didn't attack? increased hp of some predators so their AI will attack humans
* orders: atk: doesn't work when no tgt? or at all? need to test it some. if no orders tgt, uses current tgt, if none, doesnt atk. tested. woking fine.
* fixed: order pet to wait here doesnt work. b2_issue_animal_orders told animal i to goto bandmember i's location, not animal i's location. a copy-paste-edit error, introduced when converting the code from cm to animal. but follower AI still needs help. they follow owner before following orders!
* follower ai needs help - make it like bm ai. changed follower ai:
do common AI
move2owner if > 100
if tgt nearby do orders or atk
listen to story etc
moveto owner if > 20
do common AI
do orders (if has orders)
atk nearby tgt (if has one)
listen to story etc
move2owner (if flag set)
* fixed: game doesn't model spoilage of food in storepits
* already done: teach doesn't take as long as learn? already fixed: learn was called once per game minute, and teach was called once per frame (update or turn) - IE 15x per game second.
* show skills: dont show last 3 undefined skills. dont show mapmaking. is bonelore used? mapmaking? re-did view_skills - made a new view_skills2 routine. bonelore and mapmaking are gone.
* order everyone: gets goto location, target, or who to follow just once, instead of once for each party member ordered.
* fixed: didnt set bedding's world object ID when resting on bedding.
* DONE: dont let 2 BMs use the same bedding at same time. when select bedding, need to check all other bm's for bedding action with that bedding, if found, show msg saying someone is already using that bedding.
DONE: WATER and WATERSKINS:
* improve how water and waterskins work. move the water with the container.
make sure they have sufficient waterskins whenever they transfer water. store in pit, drop on ground, fill waterskins (water source or rain), give water to bm, pickup dropped, etc.
when they transfer a waterskin, transfer water as needed. dont let them drop water. only let them drop water in waterskins. abandon water as requierd if they abandon waterskin.
need to possibly mod calls to add2inventory and add2stufflist. fill waterskin watersource, fill waterskin rain, give water to bm, npc menu (trade, ask for item), trade with band (get water).
* fill waterskins and fill waterskins rain check for waterskins full and max encumberance at start of action handlers. fill waterskins didnt check encumberance until water was gathered. fill waterskins rain didnt check it at all!
* all fill waterskin from water source actions now use try_fill_waterskins.
* made sure fill waterskins and fill waterskins rain check for player has waterskins. so now - for sure - they can't gather water without waterskins. can only get it from storepit, other BM, NPC, or trading with a friendly band.
* checked: get stuff from storepit makes sure they can carry water before giving it to them. so it makes sure they have enough waterskins.
* store stuff: checks for waterskins in the pit, and not all full. now you cant store water in a pit that doesnt have non-full waterskins.
* drop object: no longer lets you drop water. tells you to drop a waterskin instead.
* checked: pickup dropped object calls can_carry, which check encumberance, container capacity, and waterskin capacity. so they can't pickup dropped water without a non-full waterskin.
* newtrade and trade_with_band: doesnt let you trade for water if you dont have non-full waterskin.
* ask for item: doesnt give water if cant carry
* trader hut: doesnt trade for water if cant carry
* give_item2bandmember: doesnt give water if cant carry
* getstuff and storestuff: transfers water as needed when get/store waterskin.
* give_item2bandmember: transfers water as needed when give waterskin.
* trade_with_band: removes water as needed when trade away waterskins
* new_trade: removes water as needed when trade away waterskins
* trader_hut: removes water as needed when trade away waterskins
* fixed: some calls to indexdropat checked for return of 0, not -1 on error.
* indexdropat activates new record for each waterskin dropped. no longer adds waterskins to existing active records. so each active record with a waterskin has only one waterskin, and data can be used to store how much water is in it.
* drop object: transfers water to dropped waterskin as needed. amount of water is stored in waterskin worldobj.data.
* abandon object: removes water as needed when abandon waterskins
* transfer_to_waterskin_as_needed: calcs avg qual of water transferred, and stores it in worldobj.data
* pickup_object: if object is WATERSKIN, checks encumbrance vs waterskin+the water in it, and transfers the water with the waterskin, if they can carry both the waterskin and the water in it.
--- END WATER AND WATERSKINS CHANGES ---
* DONE: turn clip ranges and autocliprange on again. this also fixed: clip rng for animals too far compared to clip rng for terrain chunks.
* cant see small dead animal under the water. draw them at y = 0. dead animal in water are now drawn at y=0 (water level) - IE half floating in the water.
* 3pv cam, make min altitude ground + a few feet so its above ground coverage. defined MIN_ALT_3PV_CAM. set it to 3.0f (three feet). old hard coded value was 1 foot.
added it to set 3pv cam for: cave, cavern, outdoors, perm shelter, rockshelter, and hut.
* make anis: need different y's for male and female.
* dawn & dusk are a little to dark. they are now lower limited to nighttime lightness.
* fixed: doesnt do fire light in adjacent map sq
* make 3pv cam look over avatar's rt shoulder
* sleep ani - draw at different heights dependingon has bedding
* dont draw avatar in 3pv if player is looking almost straight up.
* make sure accel time display, tutor messages, hud, etc dont overdraw each other.
* already done: not stop and start anis correctly when NPC joins band?
* already done: view inventory: flush sprites before drawmouse
* sleep on bedding: make them line up on the bedding. adjust location and orientation.
* dont play rain sfx when snowing
* doesnt play fire sfx in adj map sq. typo bug. called dist w/ mx,mx,x,z, not mx,mz,x,z.
* view stats - only play klick when they click on the done or rename buttons.
* add tada sfx to game saved.
* make animals do sliding collisions
* already done during playtesting: show all BMs on local map
* make mouse wheel zoom world map in and out.
* reinit dice from time to time. now calls initdice once per game day.
* more animals ? double the base chance of animal encounters?
increased by 10x. try it and see...
* more water. rocks etc?
water: every map sq, to once every 10-100 map squares
chert, flint: 28% of land = 1 in 3.57 map sq's on avg.
obsidian, quartzite: 1 per 230 map squares (mtns & volcanos only)
volcanoes: one per 4600 map sq on avg. in lines along plate boundaries.
tar: seeps from underground oil deposits which cover perhaps 10% of the planet. = 1 in 10 map sq's on avg.
* talk to caveman: ask directions to rocks, berry bushes, good hunting grounds, etc. a simple goto location quest. getting there is the reward. talk to cavemen: ask directions to water, woods, rocks, etc. do they always know where stuff is? do they always tell you? do they sometimes tell you a bogus location? can you ask them more than once and get a different response?-no
+ trade maps w/ npcs, will they trade? do they gve you a bogus map? can you trade more than once and get different maps?-no
+ npcs: ask whats around: do they always know? will they tell always you? do they sometimes give you bogus info? can you ask more than once and get a different response?-no
+ combine ask directions, whats around, and trade maps, and what do you get? an extended whats around. npc: exchange knowledge of area. caveman: ask whats nearby - automaps everything in a 1 or 2 (or more?) map square radius around the player. not as realistic as tracking what each npc knows, wheter they will tell you, if they give you bogus info, if you've already asked them, etc. so you need flags for "what they know", and "if you've asked them already" for each thing you can ask them (where's rocks, water, wood, whats to the north, etc)
+ simpler - relations governs if they tell you or not, and it reveals world map in a 2 map sq rad (for example) on success, and nukes relations some on failure. but can ask again, (with ever decreasing chance of success due to ever decreasing relations from repeatedly asking ; ) <g>).
+ or would early humans freely share such knowledge? friendly caveman: exchange knowledge of local region. why wouldnt they? resource competition? not in early stages when resoureces where plentiful. cant see why they wouldnt share knowldge of local area. it would automap say, everything in a 1 map sq radius around current location - world and local maps - completely - IE entire local maps revealed.
* talk to cavemen, ask if you can travel with them. - if yes...then what? you can follow them around -whooptie do! if no...then what? they throw rocks at you to keep you from following them? i mean - hey, its a free planet - right? if you happen to go where they do, as long as you dont interact with tem and nuke relations, no biggie. - or- you become their companion, and must hang out near them, and they fight with you, and give you orders. go here, wait, attack that, etc. but a nearby friendly will generally fight with you. so ask to travel with may not be needed. you can just follow them if you feel like it.
* add dismiss follower action
* already done: encounters don't correct for encounter location in adjacent map sq when player near map sq edge.
* "move storepit" added to playtest menu
* fixed: Zdomessages, getmouse, and mouse wheel. now fps view and world map both zoom with mouse wheel.
* grogs game converted to new savegame format.
* new world map generated for grogs game. moved the base camp. added new huts and bedding. moved all storepuits. abandodned empty storepits.
* finished converting grogs game to new world map. demolished all old huts and bedding. now they're all at the new camp, making arrows, gathering wood, or sleeping.
* made BM vs BM and BM vs NPC relations go to zero over time
* followers: take shares. original version, followers took a share of hides, meat etc from kills at the end of fps combat mode. now follower reations go down over time. if < 50, they leave your party. so you have to give hides etc to keep them in your party.
* types and numbers of animals at crh's is not persistant. when gen encounter, have to set type and num. when one dies, reduce num. added animal_type and num_animals to crhrec. added is_crh_animal and crh_num to animal rec. if game does cave or rocksheletr animal encounter, if crh2.num_animals<1, it generates crh2.animal_type and crh2.num_animals. else it uses the current values. when an animal is killed, if animal.is_crh_animal, crh2[animal.crh_num].num_animals--.
* eruptions: should be 10% chance per year per volcano of 1 eruption. = 10/365/24% chance per hour for a given volcano. reduced from one per week on avg to ~10% chance per year, specifically: 11 in 1000000 per hour.
* improve timing of state changes in graze AI. reduced chance for state changes by factor of 10. flock rng changed from 50 to 25*animaltype.rad.
* make int have greater effect on time and chance to make and fix stuff. some of this is already done, but not all make and fix actions. make int affect time, chance, and qual of all items made or repaired. also added adjust for dex as needed.
teach bandmember (learners int only, not teachers)
train (w/ wpn)
* improve avian ai. fixed: move_avian set y to ground height! made "orders: maintain distance" use new maintain_distance AI code. made avian AI code match animal AI code. collapsed some redundant code into single stand alone function calls.
* drop object doesnt handle dropping objects across a map sq edge into the next map sq! need to normalize dropat location rel to cm0. either that or remove distant dropped doesnt work across map squares. fixed: drop_object now normalizes drop location. any_BM_near_worldobj: added check for BB map sq dist < 2. it already handled map sq edges in other respects.
* game doesn't model bedding weathering, just wearing out from use.
* fixed: bedding.data=is_in_shelter, bedding.data=shelter_num, shelter.data=has_bedding, shelter.data=bedding_num
* make teachers int affect "teach bandmember" action.
* fixed: bm_in_way_of_bm: call to BBdist: typo: was mx1 mx1 mx2 mz2, not mx1 mz1 mx2 mz2. duh! took all morning to find and fix. will check all calls to bbdist for similar typos. and calls to dist2!
* fixed: get_fire_sfx: typo in call to bbdist
* fixed: get_fire_sfx: typo in call to dist2
* checked all 174 occurances of BBdist for typos. only found the one in get_fire_sfx.
* checked all 68 occurances of dist2 for typos. get_fire_sfx was the only one.
* fixed: getstuff and storestuff: was if index==WATER, not if object[index].type==WATER.
* fixed: getstuff and storestuff: was "if index==WATER", not "if object[index].type==WATER".
* fixed: drop_object: was "if index==WATER", not "if object[index].type==WATER".
* fixed: too many encounters are elephants. now all 6 elephant types collectively have the same chance as any other single animal type of appearing in a given type of terrain. IE if there are say, 32 differnt types of common animals in a given terrain type, now just one will be "some sort of elephant". what sort of elephant is then determined based on the terrain type (not all types of elephants appear in all terrain types). this for example, reduced elphant encounters in savanna from 16% to 3% of all animal encounters.
* checked out skinned meshes. code looks doable. .x files look ok. truespace has rigged models ready to go. need to learn how to animate models in truespace.
* eat/drink: show a menu of edible inventory to choose from.
* make mouse wheel zoom world map faster.
* butcher: add bmsg(). added "<bandmember name>: you butchered an animal!"
made all messages such as "you get some meat!" read "<bandmember name>: you get some meat!". that should help keep things straight when the band is butchering kills after a hunt.
* automatically load last saved game if player dies (except in tutor). added to continue, new, and load.
* replace all calls to select_item with shift_select_item. now only repair_object and sell_to_trader actions have you select just one object at a time. only "select item to trade band for" needed to be changed. all others already used shift_select_item.
* implemented new zoom-able local map! : )
* more hotkeys for world map: arrow keys and numpad arrow keys to scroll u/d/l/r.
* more hotkeys for local map: arrow keys and numpad arrow keys to scroll u/d/l/r.
* fixed: 1pv w/ wpn drawn, or sprinting, can see 3pv avatar! code got screwed up when "dont draw avatar in 3pv when looking almost straight up" was added. this also fixed: still draws 3pv cam when look up
* fixed: 3pv cam is too far to the right. moved to from 1 foot to 1/2 foot right of center. #defined xofs_3pv_cam. made all six versions of set3pv cam use it. there are six versions to adjust to the six different types of complex environments in the game (outdoors, in hut, in rockshelter, in cave, in cavern, and in playerhut).
* girl sleep on bedding: bandmember y is too high. chnged from baseline_y-1 to baseline_y-1.5
* increase drawing clip rad of animal #30 small antelope. increased from 2 to 3.
* change loading screen to copyright 2015. made new loadmsg() routine.
* add ability to toggle between world and local maps
* test avian attack ai - not working right?
+ fixed: didnt call set_predator_tgt (weaker prey only) when hunting. it would target strong prey, then flee when close!
+ fixed: didn't call do_animal_attack when attacking! it would dive on a target correctly (the hard part), but not attack when it got there!
+ fixed: avians start their attack too late. doubled avian vs ground target start_attack_range from 30 to 60. makes perfect sense. the new AI attacks at sprint speed, not run speed - IE double the speed it used to. so now it needs to start its attack twice as far away. i love it when the physics works out correctly! now once again, if there are big hungry avian predators around, you'd better do something or you're going to die!
+ fixed: avians now land before resting due to fatigue
+ fixed: set xr (pitch) to zero when standing.
+ fixed: climb/dive vs avian tgt: it was setting desired_altitude to ground level at target's location for all targets, even avains. now it sets desired_altitude for avian targets to the target's altitude.
***** still need to test avian vs avain start_attack_range. in general, start attack range formula may need to get fancier, and take into account speed and direction of attacker and target, not just speed of attacker and range to target. stuff done to fix avian vs avian AI:
* renamed b2_avian_attack() to b2_avian_attack_ground_target(). B2_avain_attack() is tailored for ground attack.
* added b2_avian_attak_avian_target()
* added: b2_avian_match_targets_altitude() for use by avians against avian targets.
* fixed: draw_animal_model: if dead: if in water draw at water level, else draw at ground level.
was backwards: if in_water draw at ground level, else draw at water level. (oops!)
* fixed: didnt start to land to eat carcass until right above it. now: if not at carcass, but within within 50: if flying, lands, else fly a bit (towards carcass). landing starting at 50 put them close, fly a bit (which causes oscillation betwen fly and land, until at carcass) make them "hop up" to the carcass - just like a real bird.
* added instructions to the "create a new character" screen
* demo now starts player in temperate savanna terrain.
* end demo: removed references to atk to subdue and capture.
* tutor: added info about "z" key to pick up dropped objects
* turned off playtest hotkeys in demo
* increased cave hyena hp in demo so they attack player.
* tutor: gives encounter advice right after the normal encounter message - not right before.
* upatree: badguys dont leave! simply have them ignore targets that are up a tree. set_predator_target now ignores band members who are up a tree if the animal type can`t climb trees.