* Fix input not working in Ctrl-G mode after UI Editor is opened
Signed-off-by: abrmich <abrmich@amazon.com>
* Delete environment variable
Signed-off-by: abrmich <abrmich@amazon.com>
A few 'typedefs' replaced by 'using's
This shouldn't have any functional changes at all, just c++17 modernization
It's a part 5 of a split #2847
Signed-off-by: Nemerle <nemerle5+git@gmail.com>
Co-authored-by: Nemerle <nemerle5+git@gmail.com>
The serialize context tools were not being auto built by CI because of
this.
Added missing dependency on AzTestRunner.
Also moved the AssetBundlerBatch dependency directly in there
No reason to add it to additional_dependnecies, since its only
used for conditional inclusions.
Signed-off-by: lawsonamzn <70027408+lawsonamzn@users.noreply.github.com>
* Fix issues with locating and loading loc banks
The code that initially checked the g_languageAudio cvar wasn't properly
detecting when the cvar wasn't set. Fixed an issue discovering
localized banks wasn't properly recursing into subdirectories.
Simplified handling of audio language switching for Wwise.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Address feedback on PR
Change .size() == 0 to .empty()
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
This allows the EMotionFX runtime to compile with `/we4267` enabled, which
emits a warning when converting from `size_t` to a smaller type. All tests
for the runtime have been updated accordingly, and they pass.
In instances where a range-for loop could be used, or a std algorithm, that
was used instead of using `size_t numItems = vec.size()` and a for loop.
Casts to `uint32` were removed where possible. Some places remain, like in
the file formats.
Signed-off-by: Chris Burel <burelc@amazon.com>
Previously the script was using the full local path as the artifact key when uploading to s3. This was causing the installer artifacts to be uploaded incorrectly and non-functional for normal use.
Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
This translates all usages of MCore::Array to AZStd::vector. It is
designed to be as minimal of a change as possible (no changing to
range-for loops or other C++11 stuff).
We can decide to submit this wholesale, or submit it to a separate
branch that we can then integrate individual files from once we're ready
to do a specific class's transition.
It does not completely solve the `uint32`->`size_t` transition.
One important finding from doing this: `MCore::Array` uses a `memcpy`
when it reallocates. `AZStd::vector` will use the contained type's copy
or move constructor, per element. This is a significant change in
behavior. If you have type, `SomeStruct` that defines a destructor, that
type is copyable and not movable. So if you have a
`MCore::Array<SomeStruct>`, and you call `Add(); Add(); Add()`, that
reallocates 3 times, copying the contents using `memcpy`, and never
invokes `SomeStruct`'s copy constructor or destructor. Translating that
to `AZStd::vector<SomeStruct>` and calling `push_back(); push_back();
push_back();` will still reallocate 3 times, but it sees that
`SomeStruct` is non-movable, and uses the copy constructor to make the
copies, and then the destructor on the previous values. This call to the
destructor wasn't there before, and can cause things to be deleted that
weren't before. The solution to this is to make that struct be a
move-only type. Where possible, this was done by changing that type to
use `AZStd::unique_ptr` instead of a raw pointer, to get the proper move
behavior. Where that is not possible (types that inherit from
`MCore::MemoryObject`), a hand-written move constructor was created.
In general:
GetLength() becomes size()
GetMaxLength() becomes capacity()
GetIsEmpty() becomes empty()
Reserve() becomes reserve()
ReserveExact() becomes reserve()
Resize() becomes resize()
ResizeFast() becomes resize_no_construct()
Add() becomes emplace_back()
AddExact() becomes emplace_back()
AddEmpty() becomes emplace_back()
AddEmptyExact() becomes emplace_back()
GetPtr() becomes data()
GetItem() becomes at()
Shrink() becomes shrink_to_fit()
GetFirst() becomes front()
GetLast() becomes back()
Remove() becomes erase()
RemoveFirst() becomes erase()
RemoveLast() becomes pop_back()
RemoveByValue() becomes if (const auto it = AZStd::find(...); it != end(container)) container.erase(it);
Insert() becomes emplace()
Swap() becomes swap()
Clear(true) becomes clear(); shrink_to_fit()
Clear() becomes clear(); shrink_to_fit()
Clear(false) becomes clear()
Swap() becomes swap()
Find() becomes AZStd::find
MoveElements() becomes AZStd::move
SetMemoryCategory() is removed
Signed-off-by: Chris Burel <burelc@amazon.com>
* add an integration test to validate pick mode crash
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update to test after review feedback
Signed-off-by: hultonha <hultonha@amazon.co.uk>