think about switching to percent when its possible (lowPosition, hightPosition)
think about adding a "direction" property and merging v and h scrollbar
Choose fire mode based on TU available - currently the first one is used.
actually handle fire modes
fill z_align values
optimize this
do this decently, only penalizing the visible part of walk and penalizing much more for reaction shooters around; now it may remove some tactical options from aliens, e.g. they may now choose only the closer doors; however it's still better than going three times around soldier and only then firing at him
Try to crouch if no hiding spot was found - randomized
also add bonus for fleeing from reaction fire and a huge malus if more than 1 move under reaction
Check whether radius and power of fd are to to big for dist
Check whether the alien will die when shooting
maybe this isn't working, aircraft slot type can't be an AMMO
This only works for ammo that is usable in exactly one weapon check the weap_idx array and not only the first value
only compute this calculation every time target changes destination, or one of the aircraft speed changes.
add EQUAL_EPSILON here?
Implement me and display an attack popup.
This should be calculated only when target destination changes, or when aircraft speed changes.
num
is negative? Search a empty field and add a alien craft there
If a building is still under construction, it will be assembled as a finished part. Otherwise we need mapparts for all the maps under construction.
this must be set after the aircraft are loaded
can't we use something like I_DestroyInventory here?
If player choose to destroy the building, a popup should ask him if he wants to sell aircraft in it.
move aircraft being transfered to the destBase
Better solution? let it crash due to technical difficulties and spawn a rescue mission?
move aircraft to .ufo
cleanup this mess:
Add this entry to the list
use the market to get the price
Use craftitem name here? See also BS_MarketClick_f
select first heavy item
Handle items with price 0 better
Handle items with size 0 better
message - Couldn't fire employee.
make this depend on market as well?
vorbis/theora-header & init in sub-functions
"clean" error-returns ...
FIXME? can serialno be 0 in ogg? (better way to check initialized?)
support for more than one audio stream? / detect files with one stream(or without correct ones)
FIXME? better way to find audio stream
Get the skin id from the model by using the customskin id
Or remove skins from models and convert character_t->skin to string
What happens if a model of a team member does not have the selected skin?
Get the skin id from the model by using the customskin id
Or remove skins from models and convert character_t->skin to string
The hit probability should work somewhat differently for splash damage weapons. Since splash damage weapons can deal damage even when they don't directly hit an actor, the hit probability should be defined as the predicted percentage of the maximum splash damage of the firemode, assuming the projectile explodes at the desired location. This means that a percentage should be displayed for EVERY actor in the predicted blast radius. This will likely require specialized code.
use LE_FindRadius
Scoring should eventually be expanded to include such elements as infected humans and mission objectives other than xenocide.
HACK: This should be handled properly, i.e. civilians should only factor into the scoring if the mission objective is actually to save civilians.
The score for aliens is always negative or zero currently, but this should be dependent on the mission objective. In a mission that has a special objective, the amount of killed aliens should only serve to increase the score, not reduce the penalty.
Somehow the display of the months isn't really correct right now (straight line :-/)
should be into the chart node code
Sort this in reverse? -> Having current month on the right side?
We should ensure, that every other particle is rendered, before we add weather particles
don't do this every frame
subsystems should have Init/Shutdown functions like callbacks have and do these cleanups for themselves
this isn't working per per-base, as get next from base won't give every available craft (not every craft must be in a base). Maybe we should use the tags for the memory allocation for linked list (like we do for the game shared object already, too)
Sys_Quit
and Com_Error
. It would be better to run quit through here before the final handoff to the sys code. This currently always uses exactly the first two firemodes (see fmode1+fmode2) for calculation. This needs to be adapted to support less (1) or more 3+ firemodes. I think the function will even break on only one firemode .. never tested it.
i think currently also the different ammo/firedef types for each weapon (different weaponr_fd_idx and weaponr_fd_idx values) are ignored.
Do we allow EMPL_ROBOTs to be equipable? Or is simple buying of ammo enough (similar to original UFO/XCOM)? In the first case the EMPL_SOLDIER stuff below needs to be changed.
Skip EMPL_ROBOT (i.e. ugvs) for now .
TEST z-level routing
this eats a lot of memory - load directory into mapData->map
it may be nice to vectorise that
it may be nice to vectorise that
refactor and move me
Com_GrenadeTarget() is called from CL_TargetingGrenade() with speed param as (fireDef_s) fd->range (gi.GrenadeTarget, too), while it is being used here for speed calculations - a bug or just misleading documentation?
We may want to change this to use the type->ammo[] info.
on return from a mission with no clips left and one weapon half-loaded wielded by soldier and one empty in equip, on the first opening of equip, the empty weapon will be in soldier hands, the half-full in equip; this should be the other way around.
We may want to change this to use the type->ammo[] info.
handle command centre properly
EMPL_ROBOT
remove me - this is not needed because we are using the base->aircraftCurrent pointer for resolving the aircraft - only CL_GameAutoGo needs this
- cache the counted hits
add EQUAL_EPSILON here?
This needs work - also take mis->initialIndividualInterest into account?
change the formular here to reflect the above comment
change the formular here to reflect the above comment
change the formular here to reflect the above comments
fix this value
fix this value
<= -50, etc. (implants)
this shouldn't be here. Ideally we should check for alien/store space when aircraft arrived home and start a player controlled transfer
remove this once the employees are a linked list, too
This might not work as expected - maybe we have to memmove the array
Add check for base vs. employee_type and abort if they do not match.
are soldiers and pilots assigned to a building, too? quarters?
check for direct shot / splash damage shot?
This really needs an overhaul.And it might get dumped completely when Feature Request "[1814158] Extended shot-definitions in firedef" https://sourceforge.net/tracker/?func=detail&atid=805245&aid=1814158&group_id=157793 gets implemented.
there should be a possible protection, too
Also increase the morale a little bit when soldier gets healing and morale is lower than max possible?
count from 0 to get the civilians for objectives
< 2 does not work when we count civilians
use level.nextmap to spawn another map when every living actor has touched the mission trigger
use level.actualRound to determine the 'King of the Hill' time
Use this function to enable footsteps over network
don't play foot step sounds for flying units.
The random dir-modifier?
need some change to reflect 2x2 units. Also might need a check if the distance is bigger than the one to the impact location.
can't we use the fd->shotOrg here and get rid of the sv_shot_origin cvar?
reduce even more if the wall was hit far away and not close by the shooting actor
flier should return true if the actor can fly.
has_ladder_support should return true if 1) There is a ladder in the new cell in the specified direction or 2) There is a ladder in any direction in the cell below the new cell and no ladder in the new cell itself.
has_ladder_climb should return true if 1) There is a ladder in the new cell in the specified direction.
falling_height should be replaced with an arbitrary max falling height based on the actor.
actor_height is currently the fixed height of a 1x1 actor. This needs to be adjusted to the actor's actual height, including crouching.
actor_stepup_height should be replaced with an arbitrary max stepup height based on the actor.
Do we need to add checks for od->isDummy
here somewhere?
is there ammo with no firedefs?
Should we handle FILTER_AIRCRAFT here as well?
I guess we should search for components matching this item here.
get own external ip and remove the 127.0.0.1 nonsense (maybe ask the masterserver for this info?)
Maybe somehow check the version of the client with ctcp VERSION and only send to those, that are connected with ufoai and have a correct version
handle quote special (general escape sequence?)
use isprint here?
: check why path.numPoints can be sometime equal to -1
we should only show healthbar if aircraft is fighting but it's a slow algo
Should be a special story related mission model
each category should have a its own model
we have two different alienbase models
- the updating of the per-entity list of nearest lights doesn't necessarily need to be updated before every frame; if the list is a few frames (or even a few seconds) out of date, it would still probably look just fine. Ideally, this updating could be done in the background by a separate, low-priority thread that constantly looped through all the entities and updated their light lists, while the high-priority rendering thread just used the most up to date version available. The current version isn't really thread-safe because it uses a global variable, which is needed due to the way that the standard qsort() function works, but this would be easy to fix if we used our own sorting algorithm, which we should probably do anyway, since qsort() isn't actually likely to be very efficient given that the ordering of the list isn't likely to change very much between calls. Bubble sort would probably be faster on average.
-) need to popup something like: "You need the following items in order to produce more of ITEM: x of ITEM, x of ITEM, etc..." This info should also be displayed in the item-info. -) can can (if possible) change the 'amount' to a vlalue that _can_ be produced (i.e. the maximum amount possible).
this popup hides any previous popup, like popup created in PR_QueueNew
move this check out into a new function
move popup into menucode
move popup into menucode
we should also count aircraft that are already in the queue list
Don't use the buffers from r_state here - they might overflow
Decrease MAX_GL_ARRAY_LENGTH to 32768 again when this is fixed
modelInfo_t
into account Add a function to reset ALL research-stati to RS_NONE; -> to be called after start of a new game.
Enhance ammo model display (see comment in code).
Implement me
escape "type weapon/tech/etc.." here
Needs to check on the exact time that elapsed since the last check of the status.
Just for testing, better formular may be needed. Include employee-skill in calculation.
CHECK THAT: very very strange
We need this check - but this does not work
use this for some nice line spacing
Print brush and entnum either of the brush that was splitted or the plane that was used as splitplane
Print brush and entnum either of the brush that was split or the plane that was used as splitplane
Print brush and entnum either of the brush that was splitted or the plane that was used as splitplane
Print brush and entnum either of the brush that was splitted or the plane that was used as splitplane
clip.trace.mapTile
to get the correct one use a special testmap
implement the test
tooltip assigining wrong here, also ui doesn't yet support tooltip on options
send a message (?)
Assert out when we are not in parsing/loading stage
fix this hard coded '8' value
Assert out when we are not in parsing/loading stage
understand why we must hide this assert in release build with mingw
need custom color when button is disabled
should we move it according to the text align?
exclude rect is not safe cloned.
actions are not cloned. It is be a problem if we use add/remove listener into a cloned node.
Find better name
If the focus is not on the window we close, we don't need to remove it
Not generic function. Not sure we can do it in a generic way
Merge it with node container, bad code but it is worst to have copy-paste of it
None generic function. Not sure we can do it in a generic way
Is filterEquipType needed here?, we can use anyway INVSH_SearchInInventory if we disable dragInfoFromX/Y when we start DND
We must split the move in two. Here, we should not know how to add the item to the target (see dndDrop)
Remove filter it is not a generic concept, and here it mean nothing
Remove filter it is not a generic concept, and here it mean nothing
it's not obvious for the caller that ui_inventory
pointer must be set
dont use, and dont called by the container node; should we move it outside?
use named const for status
Add warning
merge all this cases
Change the rotation of the image as well, right now only the location is changed. How is image-rotation handled right now?
Image size calculation depends on handling of image-rotation. imgWidth = od->sy * C_UNIT; imgHeight = od->sx * C_UNIT;
remove it when its possible: we can create a 'box' node with this properties, but we often don't need it
move it at the right position
move it at the right position
can we improve the code? is it need?
merge texX and texY here
remove the use of UI_DrawString
test the code for multiline?
fix problem with truncation (maybe problem into UI_DrawString)
this magic number should be replaced with a sane calculation of the value
these cvars should come from the script
code is duplicated in the image node code
need a cleanup
need a cleanup
special cases should be managed as a common property event of the parent node
move this code into the parser (it should not create a node)
maybe this code is never used
need a full rework
we should review this code, '*' doesn't work very well for all the needed things
need a full rework
this should not work very well, because too much va are used then we should locally cache values, or manage a temporary string structure
should we add a delta?
should we add a delta?
should we add a delta?
Center image, or use textalign property
convert all pic using mousefx into button.
delete mousefx
code is duplicated in the ekg node code
convert all pic using mousefx into button.
delete mousefx
not sure it is a ui var
should be a client Cvar, not a ui
check (when its possible) properties are ordered by name
not possible at the moment, not sure its the right way
not possible at the moment, not sure its the right way
remove node param and catch error where we call that function
we should hide use of ui_global.curadata
remove Cvar_Set we have direct access to the cvar
check why activeWindow can be NULL. It should never be NULL: a stack must not be empty
We should only call it a very few time. When we switch from/to this different par of the game: main-option-interface / geoscape-and-base / battlescape
Update the code: popAll should be every time true
Update the code: pushActive should be every time true
Illustration about when/how we should use UI_InitStack http://ufoai.ninex.info/wiki/index.php/Image:UI_InitStack.jpg
what about macro expansion?
ensure that the binding for the key command is not executed
need to refactoring it with the focus code (cleaner)
at least should be moved on the mouse down event (when the focus should change)
do not hard code icons
cache icon result
refactoring it to remove "context", we should only call that function when the action value is a leaf (then a value, and not an expression)
we should improve if when the prop is a boolean/int/float
we should remove this call loop
check versionId and update cached data, and fire events
need cleanup, compute action out of the final memory; reduce number of var
better to append the action after initialization
we can think about merging UI_ParseNodeProperties here
move it into caller
don't read the next token (need to change the script language)
check for the moment its not a cvar
when it is possible, we must check range of param id
We MUST remove the OLD code as fast as possible
use a better check - e.g. Com_ParseValue with V_INT or V_FLOAT
Show frustum view area for actors (
use the same coef for x and y
check: only one binding per nodes
check: key per window must be unique
check: key used into UI_KeyPressed can't be used
remove that
move it on m_nodes, its a common getter/setter
this dont work when an option is hidden
fontWidth can be =0, maybe a bug from the font cache
improve test when we are on a junction
improve test when we are on a chopped tab
this dont work when an option is hidden
need custom color when node is disabled
we don't need to edit the text to draw the cursor
verry big, what about static, rendering is not multi threaded
what about multiline text that should be highlighted completely?
overflow check
overflow check
it should be over the window
why not using glClear here with glClearColor set to black here?
Once image_t
is known on the client, use image->width
resp. image->height
here
Once image_t
is known on the client, use image->width
resp. image->height
here
Add support for "requireAND"
re-iterate trough logic blocks (i.e. append the tech-names it references recursively)
If it is one (a logic tech) we may want to re-iterate from its requirements?
make me shiny
Display crippled info and pre-research text here
only reload the skins, not all models
going back into the map isn't working as long as GAME_ReloadMode is called
Split the mail code into cl_mailclient.c/h
Remove direct access to nodes
How is this handled after mission-end?
How is this checked to determine the stun-state? (I've found HP<=STUN in g_combat.c:G_Damage)
Move base container list outside
Move container role outside of the node name
Link soldier container with a soldier
Link base container with a base
Link floor container with a map/cell...
add an icon if possible.
implement clicked button when its possible.
allow auto size (use the size need looking string, problem when we change language)
Move base container list outside
Move container role outside of the node name
Link soldier container with a soldier
Link base container with a base
Link floor container with a map/cell...
manage disabled option
manage disabled option
allow to edit text without any cvar
add a custom max size
add function to play/stop/pause
fix fullscreen, looped video
event when video end
function to move the video by position
function or cvar to know the video position
cvar or property to know the size of the video
implement disabled
robustness
remove all "token" param from function and use Com_UnParseLastToken
reduce use of uiGlobal (create global functions to add/get/... entities)