From cc35e79766c4f05c24014acdc4c79447d0d9b5ab Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Sun, 21 Jan 2024 18:41:13 +1100 Subject: [PATCH] N64: Change controls, default to flatgrass, add more blocks in default textures Also switch to dynamically allocating memory for vorbis decoder when converting .ogg sounds to .wav --- misc/n64/default.zip | Bin 12022 -> 24104 bytes src/Resources.c | 13 +++++++++---- src/Server.c | 6 ++++++ src/Window_N64.c | 6 +++++- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/misc/n64/default.zip b/misc/n64/default.zip index ca55af9bab9611e4c3cf033a31b38f68a2678497..73447f64750388397b0c0280d7b67add2b46456b 100644 GIT binary patch literal 24104 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 literal 12022 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 z z&)-jO@2;+waX(R%xplvX2d01W9b-w=l(4k)w!tGdG>7&k6w;9fgm3BC2A`1^WCp>& zhd*K@GE_AEnjbP+-x}Mu`K*TH5E5O|L`Io!s3O2~&zVm- z#=;^VDBK`D98Tsw^V>+MI zY*dZm+-JLR?l-&IawJHC2&s zb@T!Gqp+c2Dw;-nW*PP5Gl^Vmf4d%P4eFZwuR+#EhxRV=Pgk24^1N^25+H@oFq7JBw2L04(;5K0}5HxToq~^0Cu-IWzs}SK!IEoWq+^UNJDP4T?so7$9F# zE^y*zRHlLA;nbSj}2d-h&!eLb_n)2tcDVu!A zgeZob!m=pVY{qNf*;^-kmCj#a?Wt^*-<#~1)ktmYvC>zP>zmeX=uxJD5z?si*`aFT zD*clc^z_tLLb$>@lFMmJugjLBM{D}qhZBuy@13!ZJvsBo#OM8Cm1q&CieDg|kxMn# zQ+_XeJ*GKZB5=ho44LUkK-XATD0)0%3(Md^K%4R|?g{_}P7d0^T(V^V*cW7q5*Q`)83W1@yyr8Zx7`X3&>M{ zHO+5-M&3HyZ2DJ3*8KG#@jAcA%{>pl*C=|s3-0;ICL1YipN&%-2=q{vEJwy?K;;9! z+W~*dl2%00*wHwjsY_hwt)?f)s^e12YIa19JIo`;9)w2T2z?t?|izFDpMr8 zV(_ia@ld!faQ`r3!KEMuYr%EV^xbzgZ=d_qx$STt8!%2JKvLy$oH|GlCl`H6V2xsH zJUQeI&ZnD<$p=gYkLr4%l(D{AR{u1N5NQ@rHx`HYWLLN6<1rDokRyS^MPMld`lZfZ zfx!--lhQJZW2@q;BJCWUhqBJ`+W|eejcihBIu4j}T`zmmE8;^!4%nPb^X}@*4o0fk zI<=T8r_Ew+esi4m`jf+C6?YWYEyCJqU|?dr-+s5@)DtiJv;VdZ{uH&1`TL95F#5%N zPdwEIG~l`C94l^k^8;(q88ZHWKl^6yfk#aSe@$HuE>eSXL0fV%7D#Mjn09(gEIu_= zAKP~#=wOU3|7Ub!nF1HeKyU!+eZDfEI(gwGJdok+q;A@a6(ZO){Z~axvI>2Aa4_Lz zKPXOtOWE4hKhhu3sK5v9NVbX%(xr4>0b+5mAx_t_bJC}_D;&-gJWv=XY@3qrzLH># zvh(=+piPpr_MQdJuQP-zXQM=4ml;=B%IGz*d-*1ukEA39?l>uJew-A83BeY&_0T_P zx8>u0$g6#FSfkwSXzDa`Zxf~MzB=>ZulwURo3+hKD-q0c$zTI&9g

IC^7YVz<*lgl#{tT9Z9OA3%?fYcCjD9*-Y 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 bS^uxr)gb4g4gmiL?lnK* diff --git a/src/Resources.c b/src/Resources.c index 3ab08fd6a..69c974d6b 100644 --- a/src/Resources.c +++ b/src/Resources.c @@ -327,9 +327,12 @@ static void SoundPatcher_Save(const char* name, struct HttpRequest* req) { cc_string path; char pathBuffer[STRING_SIZE]; struct OggState ogg; struct Stream src, dst; - struct VorbisState ctx = { 0 }; + struct VorbisState* ctx; cc_result res; + ctx = (struct VorbisState*)Mem_TryAllocCleared(1, sizeof(struct VorbisState)); + if (!ctx) { Logger_SysWarn(ERR_OUT_OF_MEMORY, "allocating memory"); return; } + Stream_ReadonlyMemory(&src, req->data, req->size); String_InitArray(path, pathBuffer); String_Format1(&path, "audio/%c.wav", name); @@ -338,12 +341,14 @@ static void SoundPatcher_Save(const char* name, struct HttpRequest* req) { if (res) { Logger_SysWarn(res, "creating .wav file"); return; } Ogg_Init(&ogg, &src); - ctx.source = &ogg; - SoundPatcher_WriteWav(&dst, &ctx); + ctx->source = &ogg; + SoundPatcher_WriteWav(&dst, ctx); res = dst.Close(&dst); if (res) Logger_SysWarn(res, "closing .wav file"); - Vorbis_Free(&ctx); + + Vorbis_Free(ctx); + Mem_Free(ctx); } diff --git a/src/Server.c b/src/Server.c index df9bd4fdd..c778a2aa1 100644 --- a/src/Server.c +++ b/src/Server.c @@ -127,13 +127,19 @@ static void SPConnection_BeginConnect(void) { Random_SeedFromCurrentTime(&rnd); World_NewMap(); + #if defined CC_BUILD_LOWMEM World_SetDimensions(64, 64, 64); #else World_SetDimensions(128, 64, 128); #endif +#ifdef CC_BUILD_N64 + Gen_Active = &FlatgrassGen; +#else Gen_Active = &NotchyGen; +#endif + Gen_Seed = Random_Next(&rnd, Int32_MaxValue); Gen_Start(); diff --git a/src/Window_N64.c b/src/Window_N64.c index 05dfa329d..41271343f 100644 --- a/src/Window_N64.c +++ b/src/Window_N64.c @@ -39,7 +39,11 @@ void Window_Init(void) { // change defaults to make more sense for N64 cc_uint8* binds = (cc_uint8*)KeyBind_GamepadDefaults; - binds[KEYBIND_INVENTORY] = CCPAD_Z; + binds[KEYBIND_INVENTORY] = CCPAD_B; + binds[KEYBIND_PLACE_BLOCK] = CCPAD_Z; + binds[KEYBIND_HOTBAR_RIGHT] = CCPAD_L; + binds[KEYBIND_DELETE_BLOCK] = CCPAD_R; + binds[KEYBIND_FORWARD] = CCPAD_CUP; binds[KEYBIND_BACK] = CCPAD_CDOWN; binds[KEYBIND_LEFT] = CCPAD_CLEFT;