Commit graph

1445 commits

Author SHA1 Message Date
Christoph Oelckers
a837b8205e Create README.md 2016-11-10 20:02:18 +01:00
Christoph Oelckers
8b7d40646e - fixed: vertex:t::angletime was not initialized.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1600 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-20 18:50:20 +00:00
Christoph Oelckers
d24edddce1 - fixed: When adjusting texture placement for map based scaling the actual texture scaling factor must be left out of the calculations. The patch in r1460 used the composite tci.ScaleY instead of the map-only tci.TempScaleY variable.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1599 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-20 18:43:14 +00:00
Christoph Oelckers
49480e123e - bump version number.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1597 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-09 07:36:25 +00:00
gez
d5026ad1f7 - Added warning message to MODELDEF parser when a model keyword isn't recognized.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1596 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-08 14:03:42 +00:00
gez
296d48c6ec * Updated to ZDoom r4341:
- Bumped NETGAMEVERSION.
- Bump ZDoom version up to 2.7.0.
- Revert r4244.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1595 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-08 11:11:42 +00:00
gez
15aea90e25 * Updated to ZDoom r4335:
- Moved the status bar Tick call after the players have been ticked by P_Ticker(), because P_PlayerThink() is where the check for unspawned players happens. If the player attached to the status bar is one of them, it will crash while ticking.
- Added ACS function CheckFont.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1594 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-07 07:28:02 +00:00
gez
d538d28293 * Updated to ZDoom r4333:
- Fixed: Polyobjs that rotated faster than their distance would overshoot on their first tic.
- Reduced the potential for overflow when setting up the speed of a rotating polyobj.
- Fixed: The time freezer power should do nothing while predicting.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1593 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-06 22:01:49 +00:00
gez
be223ad4d5 * Updated to ZDoom r4330:
- Added SpawnDecal ACS function.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1592 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-06 12:42:41 +00:00
Christoph Oelckers
5a55c8af52 - only enable vertex buffers by default for NVidia.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1591 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-05 06:55:55 +00:00
gez
22f0b88868 * Updated to ZDoom r4329:
- Addded support for multi-line values in INI files, so you can't maliciously inject stray newline characters into the config file using ACS's SetCVarString.
- When purging ACS strings, free the strings themselves as well as marking them as free.
- Fixed: ACSStringPool::InsertString()'s overflow check was far too low.
- Fixed: When ACSStringPool::InsertString() triggered a garbage collection, it ignored the newly freed space and expanded the array anyway.
- Reduce ACS LineAttack's default range to the standard MISSILERANGE, because making it INT_MAX seems pretty iffy.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1590 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-04 17:04:57 +00:00
gez
425ead73ea * Updated to ZDoom r4325:
- Fixed: Don't transform map variable string initializers into global string table entries if they don't really exist in the source string table.
- Fixed: When garbage collecting ACS strings, the active values on the ACS stack also need to be included in the mark phase.
- Added ACS function PlayActorSound. It's functionally equivalent to PlaySound, except instead of taking an actual sound name as its second parameter, it selects the sound to play based on the actor playing the sound and the selector passed as the second parameter.
- fixed: UDMF's Doom namespace needs to retain Boom's sector special flags.
- fixed: UDMF's ZDoomTranslated namespace needs to set the DUMMYSWITCHES flag so that it remains compatible with Doom-format ZDoom maps.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1589 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-03 16:52:47 +00:00
Christoph Oelckers
8fb4b20d86 - fixed: broken models crashed because they didn't fully initialize the data.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1588 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-03 13:42:40 +00:00
gez
4af7bc0386 * Updated to ZDoom r4318:
- Added more string functions to ACS: strcmp, stricmp (aka strcasecmp), strleft, strright, and strmid.
- Clean up excess code around a few calls to SingleActorFromTID(), since that function is already designed specifically to handle the case where tid is 0.
- Added GetActorClass and GetWeapon functions to ACS.
- Added S_ChangeSoundVolume() to change the volume of an already playing sound, accessible through the new ACS function SoundVolume.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1587 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-02 11:43:27 +00:00
gez
915b50bb25 * Updated to ZDoom r4310:
- Fixed signed-ness issue with FloatBobPhase.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1586 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-01 13:42:05 +00:00
gez
03d2077709 * Updated to ZDoom 4307:
- Added read access to an actor's melee range from DECORATE and ACS, via Blue Shadow.
- Added PlaySound and StopSound functions for ACS. They are mostly analogous to their DECORATE counterparts.
- GetActorProperty now works with the string properties that were formerly restricted to CheckActorProperty.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1585 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-01 09:43:54 +00:00
gez
5a4950af36 * Updated to ZDoom 4304:
- Heretic and Hexen can now have their big fonts overridden by a font named "HBIGFONT". In   addition, a font named "BIGFONT" will override the big font for every game.
- Added OverridePalette VOXELDEF flag.
- Added ACS function LineAttack via Ryan Cordell.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1584 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-01 09:39:34 +00:00
gez
86e1081184 * Updated to ZDoom 4301:
- Fixed parameter type for Floatbobphase property.
- Added AFADoomer's patch to set a text highlight color for the list menu. 


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1583 b0f79afe-0144-0410-b225-9a4edf0717df
2013-06-01 09:22:11 +00:00
gez
61fe9b46b1 * Updated to ZDoom 4299:
- Fixed the Peasants DECORATE definition.
- Fixed inappropriate type for FloatBobPhase property. 

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1582 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-30 22:08:19 +00:00
gez
c96f7ae551 * Updated to ZDoom 4297:
- Replaced unused RNGs with pr_damagemobj for consistency checksum.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1581 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-30 11:14:42 +00:00
gez
04e8c4fb65 git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1580 b0f79afe-0144-0410-b225-9a4edf0717df 2013-05-30 10:58:25 +00:00
Christoph Oelckers
8d029ffe0f - Added FloatBobPhase 0 to dynamic light to prevent pr_spawnmobj RNG from being called for it.
- update to ZDoom r4296:

* Added a FloatBobPhase property for DECORATE. Now, if FloatBobPhase is anything but -1 it will be used directly as the initial phase, allowing to define actors that bob in sync. The allowed range of phases is 0 - 63. The main reason for this is that each actor spawn called the pr_spawnmobj RNG just to randomize this value which causes problems with non-interactive actors, in particular GZDoom's dynamic lights.
* Dynamically generated strings returned via strparam and get(user)cvar now last as long as they need to. They do not disappear at the end of each tic. You can now safely store them in variables and hold on to them indefinitely. In addition, strings from libraries no longer require you to load the exact same libraries in the exact same order. You can even store a library's string in a world variable and retrieve it on another map that doesn't load the library at all, and it will still be the correct string.
* ACS library IDs now only get 12 bits instead of 16 so that each string table can hold up to about a million strings instead of just 65536. This shouldn't be a problem, although it means that save games that had strings with the larger IDs stored in variables are no longer compatible. Since many saves don't involve libraries at all, and even many that do are not actually affected, I'm not bumping the min save version. The worst that can happen is that you get no text at all where some was expected.



git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1579 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-30 09:01:00 +00:00
gez
99c82dd7aa * Updated to ZDoom 4294:
- Move bitdepth check outside the loop for grayscale unpacking.
- Added ACS functions SetCVarString and SetUserCVarString.
- Make UCVarValue::String point to a constant string.
- Added ACS functions GetCVarString and GetUserCVarString.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1578 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-28 09:41:53 +00:00
gez
9c233b2d98 * Updated to ZDoom 4290:
- Fixed more possible NULL derefs from r4264.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1577 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-26 23:10:56 +00:00
gez
87761b3383 * Updated to ZDoom 4289:
- Added parentheses for clarity.
- Fixed potential uninitialized access in FMapInfoParser::ParseEndGame().
- Fixed: 4, 2, and 1 bit grayscale images weren't properly supported.
- Fixed: Valgrind uninitialized memory error and a signed/unsigned warning.
- Just remembered that the true color stuff generates textures differently.  Changed the previous commit to expand 1, 2, and 4 bit grayscale images while reading the PNG instead of changing the palette.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1576 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-26 11:33:33 +00:00
gez
7336b490c0 * Updated to ZDoom 4285:
- Renamed CVAR_NOSEND to CVAR_IGNORE to better reflect its intent.
- Separated CVAR_MODARCHIVE into CVAR_MOD|CVAR_ARCHIVE so that mod-defined cvars can still be identified when they aren't meant to be archived.
- Re-fixed r4279.
- Added three new ACS functions: GetUserCVar, SetCVar, and SetUserCVar.
- Added edward850's patch to cope with stalled network games.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1575 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-26 11:32:02 +00:00
gez
947bdab4d8 * Updated to ZDoom 4280:
- Remove now-unused lumpname variable.
- Changed C_ArchiveCVars()'s type parameter to a filter parameter.
- Fixed: PillarAlienPower must loop its state.
- Added CVARINFO lump support.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1574 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-26 11:27:41 +00:00
gez
d905299b1e * Updated to ZDoom 4276:
- Fixed: glbsp nodes in a wad file inside a pk3 would not be loaded.
- Fixed: Typo from r4270.
- Fixed: Possible NULL deref in P_RailAttack.
- Changed the way DrawSelectedInventory is casted so that clang doesn't warn about it.
- Fixed: Typo in WaterDropOnFloor actor's active sound.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1573 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-26 11:22:48 +00:00
gez
fb86b67558 * Updated to ZDoom 4272:
- Fix broken loading of pre-r4253 savegames.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1572 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-19 07:24:05 +00:00
gez
994c901aa0 * Updated to ZDoom 4271:
- Fixed: Strife line special 197 should have been marked repeatable.
- Fixed: Strife line special 200 should also be marked as repeatable.
- Added a definition for OB_MPMAULER1 and removed the needless reference to OB_MPMAULER2.
- Added a fallback for accented characters to use unaccented ones.
- Updated Portuguese strings with the version here: http://forum.zdoom.org/viewtopic.php?p=672839#p672839

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1571 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-17 08:00:08 +00:00
gez
524d3fd456 * Updated to ZDoom 4267:
- Fixed possible NULL pointer derefs in P_LineAttack().
- Fixed: FxBinaryInts that needed to cast the right-side parameter to an int resolved the left side instead.
- Redo r4259, because I guess those weren't actually whitespace changes. (Although they looked like it to me.)
- Fixed: A_Face() should use other instead of self->target when calculating pitch.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1570 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-17 07:56:56 +00:00
gez
1dbf973859 * Updated to ZDoom 4263:
- Removed the music strings from the Brazilian Portuguese translations. (And apparently some whitespace changes too?)
- Fixed: Missiles with STEPMISSILE set should probably be able to bounce off the floor they step up onto.
- Fix previous fix: Don't zero the velocity when a missile steps up and bounces.
- Fixed possible NULL pointer deref in A_FireBullets.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1569 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-17 07:54:36 +00:00
gez
ca39e45dbe * Updated to ZDoom 4259:
- Fixed possible NULL pointer deref in PrintDLS().
- Fixed possible NULL pointer deref in P_SpawnPlayerMissile().
- Fixed possible memory leak in the non-Windows version of CreatePath().
- Fixed: TAG_MINEKEY still contained the underscore character.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1568 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-17 07:52:50 +00:00
gez
ff75ca3b2f * Updated to ZDoom 4255:
- Switched to a generically extensible representation for userinfo.
- Fixed: The playerinfo CCMD did not range check the player number.
- Fixed possible NULL pointer deref in AActor::Grind().
- Fixed possible NULL pointer deref in A_CustomPunch.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1567 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-17 07:51:18 +00:00
gez
64ed93033a * Updated to ZDoom 4251:
- Fixed: The Ironlich lost its Pain state when it was converted to DECORATE.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1566 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-07 17:43:08 +00:00
gez
e164627296 * Updated to ZDoom 4251:
- Added bounce states. Set the BOUNCE_UseBounceState flag to use them (+USEBOUNCESTATE via DECORATE).
- Added a big-endian fix for actor flag fields that aren't four bytes wide.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1565 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-05 20:39:42 +00:00
gez
4cb2cf4b45 - Dumb typo.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1564 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-04 21:49:28 +00:00
gez
3356a6cf2f * Updated to ZDoom 4249:
- Fixed: r4225 accidentally removed the sky texture check for markceiling disabling. [Software only; OpenGL not concerned.]
- Remove now-unused dropammofactor variable from AWeaponGiver::TryPickup().
- Fixed: Ever since r1078, D'Sparil has been too quiet.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1563 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-04 21:49:02 +00:00
gez
1af67b91a5 * Updated to ZDoom 4246:
- For the sake of better testing, use 2D sprite sorting unconditionally and not just when a voxel is in view. [Software only. Irrelevant to OpenGL.]
- Fixed crash when an actor's spawn state ends by destroying the actor and the first state has NoDelay set and it only consists of 0-tic states.
- Added a DropAmmoFactor field to WeaponGiver so that ModifyDropAmount() can record the drop amount modifier into it without fiddling with the actual AmmoGiveX fields.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1562 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-03 09:23:39 +00:00
gez
d00bef42ee * Updated to ZDoom 4243:
- Fixed: r4234 moved tic decrementing to the wrong spot.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1561 b0f79afe-0144-0410-b225-9a4edf0717df
2013-05-01 16:42:06 +00:00
gez
8d0af5b32d * Updated to ZDoom 4242:
- Be consistent with whitespace tabs.
- Stylistic changes.
- Fixed: A_RemoveSiblings and [A_RaiseSiblings] did not check that the caller had a master to deduce siblings from.
- Fixed: WeaponGiver did not give half ammo when dropped.
- Fixed: The constructor for single-lump fonts did not initialize the Cursor field.
- Added a NODELAY state flag. This is only valid for a state immediately following a Spawn label. When set, the actor will run this state during its first tick. This means Spawn states may now run an action function if you set this flag. Note that this action function is executed during the actor's first tick, which is not the same as when it is spawned.
- Fixed: r4226 [ported in r1557] had bad copy-paste angles for Demon2's XDeath.
- A_KillSiblings and A_DamageSiblings didn't check for a valid master.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1560 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-30 07:01:01 +00:00
gez
3b47329254 * Updated to ZDoom 4234:
- Lets try fixing the extra tic issue by evaluating the zero delay states at PostBeginPlay.  This requires delaying the state cycling until the next tick.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1559 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-30 06:53:28 +00:00
gez
518c7b734b * Updated to ZDoom 4233:
- Fixed: noextratic fix skipped over infinite duration states.
- Try that last fix again. This time check to see if we enter an infinite duration state and break out of the loop.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1558 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-28 19:33:58 +00:00
gez
5a4a89d128 * Updated to ZDoom 4231:
- Fixed: Hexen's A_DemonDeath and A_Demon2Death had been converted to incorrect generic Decorate.
- Fixed: A_MinotaurChase should switch to the Idle state, not the Spawn state.
- Fixed: There's more than one place where the CROUCHABLEMORPH flag needs to be checked.
- Added an alternate 2D sprite sorting comparison function which seems to work better with large voxels than the standard 1D sprite sort. [Software only; OpenGL had no such problem to begin with.]
- P_RailAttack() now checks the puff's MF3_FOILINVUL flag.
- Added Blzut3's noextratic fix.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1557 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-28 08:49:31 +00:00
gez
24e09cf31a - Fixed model float-bobbing by having the bob offset applied earlier in GLSprite::Process().
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1556 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-28 08:39:22 +00:00
gez
adeb34ed6f * Updated to ZDoom 4225:
- Fixed: r4220 broke 3D floor rendering in software, because 3D floors have the floor and ceiling orientations reversed compared to normal conventions. [OpenGL wasn't affected by the change in r4220.]

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1555 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-23 20:45:34 +00:00
gez
e2dcb84e1a - Fixed wrong casing of NULL.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1554 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-21 21:39:23 +00:00
Christoph Oelckers
4c52bce99e Update to ZDoom r4224:
Instead of setting the default skybox in every sector without an explicit skybox set, set it once in the level struct and then use that for sectors with a NULL skybox. This fixes zpack's E2M3 so that when it removes its sector stacks, you will get the default skybox in their place, since stacked sectors and skyboxes use the same pointers in a sector.
    Added Xaser's reactiontime for ACS and DECORATE expression patch.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1553 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-21 07:57:56 +00:00
gez
6362d775ad * Updated to ZDoom 4221:
- Dropped items with the DONTGIB flag set will no longer be destroyed by crushers.
- Fixed: Voxel rendering completely fell apart when a mirror came into view. [Software renderer only. OpenGL was and still is fine.]
- Force all voxel mip levels to use the same pivot point as the first level.
- Added DONTGIB flag to Key, so key-dropping enemies can be used reliably near crushers.
- Fixed: When trying to unmorph a monster, make sure the morphed version doesn't have the TOUCHY flag set, or checking the position of the unmorphed version will kill the morphed version, since they will both exist in the same place at the same time, and TOUCHY is really touchy about that.
- Use tests less prone to overflow on very steep slopes when detecting which side of a plane the camera is on. Mostly, this means testing the distance of the camera to the plane rather than computing the plane's Z at the camera and comparing that with the camera's Z. [Software only, OpenGL was and still is fine.]
- Added CROUCHABLEMORPH flag for the PlayerPawn class. Use this to indicate that a morphed player class can crouch. (Regular players can always crouch, hence the name CROUCHABLEMORPH and not CANMORPH or ALLOWMORPH.)

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1552 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-20 21:17:54 +00:00
gez
f47e7afed8 * Updated to ZDoom 4214:
- Multiply the resulting velocity by the player's speed when "jumping" underwater.
- Remove the requirement that only action function default parameters can accept a constant expression that evaluates to the class 'None'.
- Fixed: AInventory::Touch() should check for a local player view before trying the pickup.
- Do copy a monster's special to its morphed version so that it can be properly restored when it unmorphs.
- Fixed: Monsters with STAYMORPHED set would still unmorph.
- Fixed: A_Face should take into account the target's height when aiming pitch.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1551 b0f79afe-0144-0410-b225-9a4edf0717df
2013-04-16 11:21:07 +00:00