// execute config file
if(pStorage->FileExists(CONFIG_FILE, IStorage::TYPE_ALL))
{
pConsole->SetUnknownCommandCallback(SaveUnknownCommandCallback, pClient);
if(!pConsole->ExecuteFile(CONFIG_FILE))
{
const char *pError = "Failed to load config from '" CONFIG_FILE "'.";
dbg_msg("client", "%s", pError);
pClient->ShowMessageBox("Config File Error", pError);
PerformAllCleanup();
return -1;
}
pConsole->SetUnknownCommandCallback(IConsole::EmptyUnknownCommandCallback, nullptr);
}
std::clamp(BaseY, Boundaries.y + 32.f, Boundaries.y + Boundaries.h - 32.f)
ColorRGBA
in most placeswidth+201
?CCollision
keeps track of the game layer size, so if you wanted a cache then that would be the place, but just for width+201
it's not really worth itvec(0, 0)
temporarily while inside a speedervec(0, 0)
temporarily while inside a speeder /tp
; teleport to the origin of your spectating perspective
/tp arg
'; teleport to this player
/tp arg1 arg2
; teleport to these coordinates (arg1 is x, arg2 is y)
can also specify relative coordinates, like minecraft. these are all valid
10
(absolute 10.00)
~10
(current position + 10.00)
~+10
(current position + 10.00)
`...GameLayer
-> pGameLayer
Boundaries
probably doesn't need to be static
static
vec4
isn't very expensive to create/destroy either% clang-format --version
Debian clang-format version 18.0.0 (++20231122111257+b3a9e8f7c0af-1~exp1~20231122111413.1710)
python3 scripts/fix_style.py
before committingewan@machine /x/ddnet-practice-tp-coords (tp-coords)> clang-format-10 -i -style=file **/*.cpp **/*.h
exec: Failed to execute process '/usr/bin/clang-format-10': the total size of the argument list and exported variables (6kB) exceeds the operating system limit.
python3 scripts/fix_style.py
before committing ewan@machine /x/ddnet-practice-tp-coords (tp-coords)> clang-format-10 -i -style=file **/*.cpp **/*.h
exec: Failed to execute process '/usr/bin/clang-format-10': the total size of the argument list and exported variables (6kB) exceeds the operating system limit.
<>
insteadddlint
that basically runs all of the CI stuff at once locallylet param = match x.parse() {
Ok(p) => p,
Err(e) => {
eprintln!("Error in param: {e}");
continue;
}
}
continue
as !
which can be converted into any arbitrary type, thus the two branches of the match
can return the same typeCEditorObject
.
Previously only CMapView
methods were used, but we should instead use the components methods by iterating over them in case we add more editor components.
strtod
e.g. returns NaN
if you input "nan"
with any casestrtod
e.g. returns NaN
if you input "nan"
with any case HUGE_VAL
is defined as infinity on my machinebind kp_1 "rcon_login <name> <accesskey>; rcon show_ips 1; rcon status; rcon dump_antibot; rcon logout"
to be more preciseTest
virtual
or not (e.g. if they're further derived)?virtual
or not (e.g. if they're further derived)? @rust
nightmare
categorynovice
moderate
brutal
insane
nightmare
godlike
supreme king
SSGSSJ2
Ultra instinct
uninstall
atomic
thread-safe
HUGE_VAL
is defined as infinity on my machine clampf
function with NormalizeColorComponent
function that convert color component from float
to unsigned char
.
Use size_t
instead of int
.
#include <stdio.h>
main(t,_,a)
char
*
a;
{
return!
0<t?
t<3?
main(-79,-13,a+
main(-87,1-_,
main(-86, 0, a+1 )
+a)):
1,
t<_?
main(t+1, _, a )
:3,
main ( -94, -27+t, a )
&&t == 2 ?_
<13 ?
main ( 2, _+1, "%s %d %d\n" )
:9:16:
t<0?
t<-72?
main( _, t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;\
#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;\
q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; \
r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;\
{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:
t<-50?
_==*a ?
putchar(31[a]):
main(-65,_,a+1)
:
main((*a == '/') + t, _, a + 1 )
:
0<t?
main ( 2, 2 , "%s")
:*a=='/'||
main(0,
main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m
.vpbks,fxntdCeghiry")
,a+1);}
dyn ...